From 2138acabe5bf7f55ee23edab116fc1c1239cb604 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Wed, 27 Sep 2017 20:29:06 +0200 Subject: [PATCH] gst: Modify behaviour of gst_get_main_executable_path To actually return the path of the executable, not its directory. https://bugzilla.gnome.org/show_bug.cgi?id=788256 --- gst/gst.c | 10 +++------- gst/gstplugin.c | 6 +++++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gst/gst.c b/gst/gst.c index 9642ed7..805dd7d 100644 --- a/gst/gst.c +++ b/gst/gst.c @@ -324,17 +324,13 @@ static void find_executable_path (void) { GError *error = NULL; - gchar *path; if (_gst_executable_path) return; - path = g_file_read_link ("/proc/self/exe", &error); - - if (path) { - _gst_executable_path = g_path_get_dirname (path); - g_free (path); - } + _gst_executable_path = g_file_read_link ("/proc/self/exe", &error); + if (error) + g_error_free (error); } #elif defined(G_OS_WIN32) static void diff --git a/gst/gstplugin.c b/gst/gstplugin.c index 18183c3..df47e47 100644 --- a/gst/gstplugin.c +++ b/gst/gstplugin.c @@ -1724,13 +1724,17 @@ gst_plugin_ext_dep_get_stat_hash (GstPlugin * plugin, GstPluginDep * dep) gchar *full_path; if (paths_are_relative_to_exe && !g_path_is_absolute (path)) { + gchar *appdir; + if (!_gst_executable_path) { GST_FIXME_OBJECT (plugin, "Path dependency %s relative to executable path but could not retrieve executable path", path); continue; } - full_path = g_build_filename (_gst_executable_path, path, NULL); + appdir = g_path_get_dirname (_gst_executable_path); + full_path = g_build_filename (appdir, path, NULL); + g_free (appdir); } else { full_path = g_strdup (path); } -- 2.7.4