mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
registry: also skip .deps dirs when scanning for plugins
No need to descend into .deps dirs in uninstalled setups, we know these don't contain any plugins.
This commit is contained in:
parent
9ee11a2af4
commit
fb40cafa5a
1 changed files with 21 additions and 6 deletions
|
@ -1072,6 +1072,25 @@ gst_registry_scan_plugin_file (GstRegistryScanContext * context,
|
|||
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)
|
||||
|
@ -1098,12 +1117,8 @@ gst_registry_scan_path_level (GstRegistryScanContext * context,
|
|||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue