plugin: plugin_load() must return a ref even if it was loaded already

Fix refcounting issue when plugin was loaded already.
gst_plugin_load() is supposed to return a ref, so it
must always return a ref.

This also fixes the gstplugin unit test on windows where
fork is not available and where test_load_coreelements()
would unref a plugin ref it didn't get and then mess up
the internal registry plugin list state for the next test,
in case where the test registry does not exist yet.
This commit is contained in:
Tim-Philipp Müller 2018-01-11 17:10:45 +00:00
parent b43f88fef6
commit af1cf061d7

View file

@ -1303,7 +1303,7 @@ gst_plugin_load (GstPlugin * plugin)
GstPlugin *newplugin;
if (gst_plugin_is_loaded (plugin)) {
return plugin;
return gst_object_ref (plugin);
}
if (!(newplugin = gst_plugin_load_file (plugin->filename, &error)))