--- a/gplugin-gtk/gplugin-gtk-plugin-info.c Sat Feb 28 20:54:46 2015 -0600
+++ b/gplugin-gtk/gplugin-gtk-plugin-info.c Sun Mar 01 20:24:21 2015 -0600
@@ -84,14 +84,14 @@
GPluginPluginInfo *plugin_info = gplugin_plugin_get_info(plugin);
GPluginLoader *plugin_loader = gplugin_plugin_get_loader(plugin);
- if(GPLUGIN_IS_LOADER(plugin_loader)) {
+ filename = gplugin_plugin_get_filename(plugin); + if(plugin_loader && GPLUGIN_IS_LOADER(plugin_loader)) { const char *loader_name = G_OBJECT_TYPE_NAME(plugin_loader);
loader = g_strdup(loader_name);
g_object_unref(G_OBJECT(plugin_loader));
- filename = gplugin_plugin_get_filename(plugin);
g_object_get(G_OBJECT(plugin_info),
"abi_version", &abi_version_uint,
@@ -310,7 +310,7 @@
priv = GPLUGIN_GTK_PLUGIN_INFO_GET_PRIVATE(info);
+ if(GPLUGIN_IS_PLUGIN(priv->plugin)) g_object_unref(G_OBJECT(priv->plugin));
if(GPLUGIN_IS_PLUGIN(plugin))
--- a/gplugin/gplugin-plugin.c Sat Feb 28 20:54:46 2015 -0600
+++ b/gplugin/gplugin-plugin.c Sun Mar 01 20:24:21 2015 -0600
@@ -130,10 +130,10 @@
g_value_set_string(value, gplugin_plugin_get_filename(plugin));
- g_value_set_object(value, gplugin_plugin_get_loader(plugin));
+ g_value_take_object(value, gplugin_plugin_get_loader(plugin)); - g_value_set_object(value, gplugin_plugin_get_info(plugin));
+ g_value_take_object(value, gplugin_plugin_get_info(plugin)); g_value_set_enum(value, gplugin_plugin_get_state(plugin));
@@ -306,7 +306,7 @@
* gplugin_plugin_get_loader:
* @plugin: #GPluginPlugin instance
- * Return Value: (transfer none): The #GPluginLoader that loaded @plugin
+ * Return Value: (transfer full): The #GPluginLoader that loaded @plugin gplugin_plugin_get_loader(const GPluginPlugin *plugin) {
@@ -316,7 +316,7 @@
priv = GPLUGIN_PLUGIN_GET_PRIVATE(plugin);
+ return (priv->info) ? g_object_ref(G_OBJECT(priv->loader)) : NULL;