From 1bb0a89de65e93dc055cb6147318d3760a535a8d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 28 Nov 2011 10:22:25 -0500 Subject: [PATCH] Add debug code This adds a dump method to show the entire tree of proxies. --- gio/gmenuproxy.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gio/gmenuproxy.c b/gio/gmenuproxy.c index 9de0c5530..4eb0dbb2f 100644 --- a/gio/gmenuproxy.c +++ b/gio/gmenuproxy.c @@ -854,5 +854,42 @@ g_menu_proxy_get (GDBusConnection *connection, return proxy; } +static void +dump_proxy (gpointer key, gpointer value, gpointer data) +{ + GMenuProxy *proxy = value; + + g_print (" menu %d refcount %d active %d\n", + proxy->id, G_OBJECT (proxy)->ref_count, proxy->active); +} + +static void +dump_group (gpointer key, gpointer value, gpointer data) +{ + GMenuProxyGroup *group = value; + + g_print (" group %d refcount %d state %d active %d\n", + group->id, group->ref_count, group->state, group->active); + + g_hash_table_foreach (group->proxies, dump_proxy, NULL); +} + +static void +dump_path (gpointer key, gpointer value, gpointer data) +{ + PathIdentifier *pid = key; + GMenuProxyPath *path = value; + + g_print ("%s active %d\n", pid->object_path, path->active); + g_hash_table_foreach (path->groups, dump_group, NULL); +} + +void +g_menu_proxy_dump (void) +{ + g_hash_table_foreach (g_menu_proxy_paths, dump_path, NULL); +} + + /* Epilogue {{{1 */ /* vim:set foldmethod=marker: */