Updating branch refs/heads/master
to 2dfd555df523a80328b03fe66bd7b741c0393d89 (commit)
from 211d94da3dce2bd1d23329502de21c899cb8a95c (commit)
commit 2dfd555df523a80328b03fe66bd7b741c0393d89
Author: Nick Schermer <[email protected]>
Date: Tue Jul 27 20:21:41 2010 +0200
Delay allocation of event table until we use it.
panel/panel-dbus-service.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/panel/panel-dbus-service.c b/panel/panel-dbus-service.c
index 46e789a..1fa9e5a 100644
--- a/panel/panel-dbus-service.c
+++ b/panel/panel-dbus-service.c
@@ -132,8 +132,7 @@ panel_dbus_service_init (PanelDBusService *service)
gint result;
service->is_owner = FALSE;
- service->remote_events = g_hash_table_new_full (g_int_hash, g_int_equal,
NULL,
-
panel_dbus_service_plugin_event_free);
+ service->remote_events = NULL;
service->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
if (G_LIKELY (service->connection != NULL))
@@ -167,8 +166,6 @@ panel_dbus_service_finalize (GObject *object)
PanelDBusService *service = PANEL_DBUS_SERVICE (object);
DBusConnection *connection;
- panel_return_if_fail (g_hash_table_size (service->remote_events) == 0);
-
if (G_LIKELY (service->connection != NULL))
{
/* release the org.xfce.Panel name */
@@ -179,7 +176,11 @@ panel_dbus_service_finalize (GObject *object)
dbus_g_connection_unref (service->connection);
}
- g_hash_table_destroy (service->remote_events);
+ if (service->remote_events != NULL)
+ {
+ panel_return_if_fail (g_hash_table_size (service->remote_events) == 0);
+ g_hash_table_destroy (service->remote_events);
+ }
(*G_OBJECT_CLASS (panel_dbus_service_parent_class)->finalize) (object);
}
@@ -389,6 +390,11 @@ panel_dbus_service_plugin_event (PanelDBusService
*service,
g_value_init (&event->value, G_VALUE_TYPE (value));
g_value_copy (value, &event->value);
+ /* create hash table if needed */
+ if (service->remote_events == NULL)
+ service->remote_events = g_hash_table_new_full (g_int_hash,
g_int_equal, NULL,
+
panel_dbus_service_plugin_event_free);
+
g_hash_table_insert (service->remote_events, &event->handle, event);
g_signal_connect (G_OBJECT (li->data), "remote-event-result",
G_CALLBACK (panel_dbus_service_plugin_event_result), service);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits