gnome-session r4861 - in branches/dbus_based: . gnome-session
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-session r4861 - in branches/dbus_based: . gnome-session
- Date: Sun, 27 Jul 2008 20:04:24 +0000 (UTC)
Author: mccann
Date: Sun Jul 27 20:04:24 2008
New Revision: 4861
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4861&view=rev
Log:
2008-07-27 William Jon McCann <jmccann redhat com>
* gnome-session/gsm-manager.c (gsm_manager_class_init):
* gnome-session/gsm-store.c (gsm_store_remove),
(foreach_remove_wrapper), (gsm_store_foreach_remove):
* gnome-session/gsm-xsmp-server.c (accept_ice_connection),
(gsm_xsmp_server_finalize):
Emit removed signal after removing from store.
Modified:
branches/dbus_based/ChangeLog
branches/dbus_based/gnome-session/gsm-manager.c
branches/dbus_based/gnome-session/gsm-store.c
branches/dbus_based/gnome-session/gsm-xsmp-server.c
Modified: branches/dbus_based/gnome-session/gsm-manager.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-manager.c (original)
+++ branches/dbus_based/gnome-session/gsm-manager.c Sun Jul 27 20:04:24 2008
@@ -111,8 +111,6 @@
PHASE_CHANGED,
SESSION_RUNNING,
SESSION_OVER,
- CLIENT_ADDED,
- CLIENT_REMOVED,
LAST_SIGNAL
};
@@ -1860,27 +1858,6 @@
G_TYPE_NONE,
0);
- signals [CLIENT_ADDED] =
- g_signal_new ("client-added",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GsmManagerClass, client_added),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1, G_TYPE_STRING);
- signals [CLIENT_REMOVED] =
- g_signal_new ("client-removed",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GsmManagerClass, client_removed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1, G_TYPE_STRING);
-
g_object_class_install_property (object_class,
PROP_FAILSAFE,
g_param_spec_boolean ("failsafe",
Modified: branches/dbus_based/gnome-session/gsm-store.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-store.c (original)
+++ branches/dbus_based/gnome-session/gsm-store.c Sun Jul 27 20:04:24 2008
@@ -90,11 +90,15 @@
return FALSE;
}
- g_signal_emit (store, signals [REMOVED], 0, id);
+ g_object_ref (found);
removed = g_hash_table_remove (store->priv->objects, id);
g_assert (removed);
+ g_signal_emit (store, signals [REMOVED], 0, id);
+
+ g_object_unref (found);
+
return TRUE;
}
@@ -147,6 +151,7 @@
GsmStoreFunc func;
gpointer user_data;
GsmStore *store;
+ GList *removed;
} WrapperData;
static gboolean
@@ -158,7 +163,7 @@
res = (data->func) (id, object, data->user_data);
if (res) {
- g_signal_emit (data->store, signals [REMOVED], 0, id);
+ data->removed = g_list_prepend (data->removed, g_strdup (id));
}
return res;
@@ -178,11 +183,20 @@
data.store = store;
data.user_data = user_data;
data.func = func;
+ data.removed = NULL;
ret = g_hash_table_foreach_remove (store->priv->objects,
(GHRFunc)foreach_remove_wrapper,
&data);
+ while (data.removed != NULL) {
+ char *id;
+ id = data.removed->data;
+ g_signal_emit (store, signals [REMOVED], 0, id);
+ g_free (id);
+ data.removed = g_list_delete_link (data.removed, data.removed);
+ }
+
return ret;
}
Modified: branches/dbus_based/gnome-session/gsm-xsmp-server.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-xsmp-server.c (original)
+++ branches/dbus_based/gnome-session/gsm-xsmp-server.c Sun Jul 27 20:04:24 2008
@@ -126,7 +126,7 @@
client = gsm_xsmp_client_new (ice_conn);
ice_conn->context = client;
- gsm_store_add (server->priv->client_store, gsm_client_get_id (client), client);
+ gsm_store_add (server->priv->client_store, gsm_client_get_id (client), G_OBJECT (client));
return TRUE;
}
@@ -608,8 +608,6 @@
g_object_unref (xsmp_server->priv->client_store);
}
- /* FIXME */
-
G_OBJECT_CLASS (gsm_xsmp_server_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]