static void do_finalize (GObject *obj) { EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (obj); EmpathyAccountManagerPriv *priv = GET_PRIV (manager); g_hash_table_unref (priv->accounts); G_OBJECT_CLASS (empathy_account_manager_parent_class)->finalize (obj); }
static GObject * do_constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params) { GObject *retval; if (!manager_singleton) { retval = G_OBJECT_CLASS (empathy_account_manager_parent_class)->constructor (type, n_construct_params, construct_params); manager_singleton = EMPATHY_ACCOUNT_MANAGER (retval); g_object_add_weak_pointer (retval, (gpointer) &manager_singleton); } else { retval = g_object_ref (manager_singleton); } return retval; }
static void do_dispose (GObject *obj) { EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (obj); EmpathyAccountManagerPriv *priv = GET_PRIV (manager); if (priv->dispose_run) return; priv->dispose_run = TRUE; dbus_g_proxy_disconnect_signal (DBUS_G_PROXY (priv->mc), "AccountStatusChanged", G_CALLBACK (account_status_changed_cb), obj); if (priv->monitor) { g_signal_handlers_disconnect_by_func (priv->monitor, account_created_cb, obj); g_signal_handlers_disconnect_by_func (priv->monitor, account_deleted_cb, obj); g_signal_handlers_disconnect_by_func (priv->monitor, account_disabled_cb, obj); g_signal_handlers_disconnect_by_func (priv->monitor, account_enabled_cb, obj); g_signal_handlers_disconnect_by_func (priv->monitor, account_changed_cb, obj); g_object_unref (priv->monitor); priv->monitor = NULL; } if (priv->mc) g_object_unref (priv->mc); g_hash_table_remove_all (priv->accounts); G_OBJECT_CLASS (empathy_account_manager_parent_class)->dispose (obj); }