From 1403c791daa33f39c3dc86917c2f133ced2ae8f4 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Tue, 27 May 2008 17:34:40 +0000 Subject: empathy_proxy_hash and _equal can be used only with proxies that unsure unique bus name. svn path=/trunk/; revision=1127 --- libempathy/empathy-utils.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'libempathy/empathy-utils.c') diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index f62d28e4c..3762b89ae 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -630,12 +630,13 @@ empathy_disconnect_account_status_changed (gpointer token) guint empathy_proxy_hash (gconstpointer key) { - TpProxy *proxy = TP_PROXY (key); + TpProxy *proxy = TP_PROXY (key); + TpProxyClass *proxy_class = TP_PROXY_GET_CLASS (key); g_return_val_if_fail (TP_IS_PROXY (proxy), 0); + g_return_val_if_fail (proxy_class->must_have_unique_name, 0); - return g_str_hash (proxy->object_path) + - g_str_hash (proxy->bus_name); + return g_str_hash (proxy->object_path) ^ g_str_hash (proxy->bus_name); } gboolean @@ -644,9 +645,13 @@ empathy_proxy_equal (gconstpointer a, { TpProxy *proxy_a = TP_PROXY (a); TpProxy *proxy_b = TP_PROXY (b); + TpProxyClass *proxy_a_class = TP_PROXY_GET_CLASS (a); + TpProxyClass *proxy_b_class = TP_PROXY_GET_CLASS (b); g_return_val_if_fail (TP_IS_PROXY (proxy_a), FALSE); g_return_val_if_fail (TP_IS_PROXY (proxy_b), FALSE); + g_return_val_if_fail (proxy_a_class->must_have_unique_name, 0); + g_return_val_if_fail (proxy_b_class->must_have_unique_name, 0); return g_str_equal (proxy_a->object_path, proxy_b->object_path) && g_str_equal (proxy_a->bus_name, proxy_b->bus_name); -- cgit v1.2.3