summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9ee11a2)
raw | patch | inline | side by side (parent: 9ee11a2)
author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | |
Sat, 19 Jun 2010 10:19:37 +0000 (11:19 +0100) | ||
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | |
Sat, 19 Jun 2010 12:06:45 +0000 (13:06 +0100) |
No need to descend into .deps dirs in uninstalled setups, we know
these don't contain any plugins.
these don't contain any plugins.
gst/gstregistry.c | patch | blob | history |
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index 7758fc72d218dfd90edb47d47aec454703e42252..71f52b4ae3a39789faf0403e57d8303634fb1742 100644 (file)
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
return changed;
}
+static gboolean
+is_blacklisted_hidden_directory (const gchar * dirent)
+{
+ if (G_LIKELY (dirent[0] != '.'))
+ return FALSE;
+
+ /* skip the .debug directory, these contain elf files that are not
+ * useful or worse, can crash dlopen () */
+ if (strcmp (dirent, ".debug") == 0)
+ return TRUE;
+
+ /* can also skip .git and .deps dirs, those won't contain useful files.
+ * This speeds up scanning a bit in uninstalled setups. */
+ if (strcmp (dirent, ".git") == 0 || strcmp (dirent, ".deps") == 0)
+ return TRUE;
+
+ return FALSE;
+}
+
static gboolean
gst_registry_scan_path_level (GstRegistryScanContext * context,
const gchar * path, int level)
}
if (file_status.st_mode & S_IFDIR) {
- /* skip the .debug directory, these contain elf files that are not
- * useful or worse, can crash dlopen (). do a quick check for the . first
- * and then call the compare functions. */
- if (G_UNLIKELY (dirent[0] == '.' && (g_str_equal (dirent, ".debug")
- || g_str_equal (dirent, ".git")))) {
- GST_LOG_OBJECT (context->registry, "ignoring .debug or .git directory");
+ if (G_UNLIKELY (is_blacklisted_hidden_directory (dirent))) {
+ GST_LOG_OBJECT (context->registry, "ignoring %s directory", dirent);
g_free (filename);
continue;
}