[Xfce4-commits] <parole:master> Complete finalize method.
matiasdelellis
noreply at xfce.org
Thu Dec 12 00:18:08 CET 2013
Updating branch refs/heads/master
to 5197e0836ee1432b20b10e8ae38e798680aa4b53 (commit)
from b8273a4cd22d36d972800a3fe2dc09b6bc83e7bf (commit)
commit 5197e0836ee1432b20b10e8ae38e798680aa4b53
Author: matiasdelellis <mati86dl at hotmail.com>
Date: Thu Nov 7 21:31:35 2013 -0300
Complete finalize method.
src/plugins/mpris2/mpris2-provider.c | 67 ++++++++++++++++++++++++++--------
1 file changed, 52 insertions(+), 15 deletions(-)
diff --git a/src/plugins/mpris2/mpris2-provider.c b/src/plugins/mpris2/mpris2-provider.c
index 925a304..d4736aa 100644
--- a/src/plugins/mpris2/mpris2-provider.c
+++ b/src/plugins/mpris2/mpris2-provider.c
@@ -42,9 +42,11 @@ struct _Mpris2Provider
ParoleConf *conf;
guint owner_id;
+ guint registration_id0;
+ guint registration_id1;
GDBusNodeInfo *introspection_data;
GDBusConnection *dbus_connection;
- GQuark interface_quarks[4];
+ GQuark interface_quarks[2];
gboolean saved_playbackstatus;
gboolean saved_shuffle;
@@ -760,25 +762,33 @@ on_bus_acquired (GDBusConnection *connection,
{
Mpris2Provider *provider;
guint registration_id;
- gint i;
ParoleProviderPlugin *plugin = user_data;
provider = MPRIS2_PROVIDER (plugin);
- for(i = 0; i < 2; i++)
- {
- provider->interface_quarks[i] = g_quark_from_string(provider->introspection_data->interfaces[i]->name);
- registration_id = g_dbus_connection_register_object (connection,
- MPRIS_PATH,
- provider->introspection_data->interfaces[i],
- &interface_vtable,
- plugin, /* user_data */
- NULL, /* user_data_free_func */
- NULL); /* GError** */
- g_assert (registration_id > 0);
- }
-
+ provider->interface_quarks[0] = g_quark_from_string(provider->introspection_data->interfaces[0]->name);
+ registration_id = g_dbus_connection_register_object (connection,
+ MPRIS_PATH,
+ provider->introspection_data->interfaces[0],
+ &interface_vtable,
+ plugin, /* user_data */
+ NULL, /* user_data_free_func */
+ NULL); /* GError** */
+ g_assert (registration_id > 0);
+ provider->registration_id0 = registration_id;
+
+ provider->interface_quarks[1] = g_quark_from_string(provider->introspection_data->interfaces[1]->name);
+ registration_id = g_dbus_connection_register_object (connection,
+ MPRIS_PATH,
+ provider->introspection_data->interfaces[1],
+ &interface_vtable,
+ plugin, /* user_data */
+ NULL, /* user_data_free_func */
+ NULL); /* GError** */
+ g_assert (registration_id > 0);
+ provider->registration_id1 = registration_id;
+
provider->dbus_connection = connection;
g_object_ref(G_OBJECT(provider->dbus_connection));
}
@@ -865,5 +875,32 @@ static void mpris2_provider_init (Mpris2Provider *provider)
static void mpris2_provider_finalize (GObject *object)
{
+ Mpris2Provider *provider;
+ provider = MPRIS2_PROVIDER (object);
+
+ if (NULL != provider->dbus_connection) {
+ g_dbus_connection_unregister_object (provider->dbus_connection,
+ provider->registration_id0);
+ g_dbus_connection_unregister_object (provider->dbus_connection,
+ provider->registration_id1);
+ }
+
+ if (NULL != provider->dbus_connection)
+ g_bus_unown_name (provider->owner_id);
+
+ if (NULL != provider->introspection_data) {
+ g_dbus_node_info_unref (provider->introspection_data);
+ provider->introspection_data = NULL;
+ }
+
+ if (NULL != provider->dbus_connection) {
+ g_object_unref (G_OBJECT (provider->dbus_connection));
+ provider->dbus_connection = NULL;
+ }
+
+ g_object_unref (provider->conf);
+
+ g_free (provider->saved_title);
+
G_OBJECT_CLASS (mpris2_provider_parent_class)->finalize (object);
}
More information about the Xfce4-commits
mailing list