static void gkd_secret_service_dispose (GObject *obj) { GkdSecretService *self = GKD_SECRET_SERVICE (obj); if (self->name_owner_id) { g_dbus_connection_signal_unsubscribe (self->connection, self->name_owner_id); self->name_owner_id = 0; } if (self->filter_id) { g_dbus_connection_remove_filter (self->connection, self->filter_id); self->filter_id = 0; } /* Closes all the clients */ g_hash_table_remove_all (self->clients); /* Hide all the objects */ if (self->objects) { g_object_run_dispose (G_OBJECT (self->objects)); g_object_unref (self->objects); self->objects = NULL; } g_clear_object (&self->connection); if (self->internal_session) { dispose_and_unref (self->internal_session); self->internal_session = NULL; } G_OBJECT_CLASS (gkd_secret_service_parent_class)->dispose (obj); }
static void cs_notification_watcher_dispose (GObject *object) { CsNotificationWatcher *watcher; g_return_if_fail (object != NULL); g_return_if_fail (CS_IS_NOTIFICATION_WATCHER (object)); watcher = CS_NOTIFICATION_WATCHER (object); if (watcher->filter_id > 0) { g_dbus_connection_remove_filter (watcher->connection, watcher->filter_id); watcher->filter_id = 0; } g_clear_object (&watcher->connection); G_OBJECT_CLASS (cs_notification_watcher_parent_class)->dispose (object); }