]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
2005-06-16 Colin Walters <walters@verbum.org>
authorColin Walters <walters@verbum.org>
Thu, 16 Jun 2005 19:45:49 +0000 (19:45 +0000)
committerColin Walters <walters@verbum.org>
Thu, 16 Jun 2005 19:45:49 +0000 (19:45 +0000)
* glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
to iterate instead of walking to G_TYPE_INVALID.

Patch based on a patch from Ryan Gammon.

ChangeLog
glib/dbus-gobject.c

index 2dd32ad9b3939e11e14ef1eaed674ca3017cd247..808dc95ca658b97c5acbe4bed062a8de9fb9b02f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-06-16  Colin Walters  <walters@verbum.org>
+
+       * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
+       to iterate instead of walking to G_TYPE_INVALID.
+
+       Patch based on a patch from Ryan Gammon.
+
 2005-06-16  Colin Walters  <walters@verbum.org>
 
        * bus/bus.c (bus_context_new): Set parser to NULL
index da5da3b2dfe4115b108e1e3198d90e576039a94d..8e43155a9629bfe6b046a3be5db5b84be91c8947 100644 (file)
@@ -1314,11 +1314,12 @@ funcsig_hash (gconstpointer key)
   const DBusGFuncSignature *sig = key;
   GType *types;
   guint ret;
+  guint i;
 
   ret = sig->rettype;
   types = sig->params;
 
-  while (*types != G_TYPE_INVALID)
+  for (i = 0; i < sig->n_params; i++)
     {
       ret += (int) (*types);
       types++;
@@ -1335,22 +1336,22 @@ funcsig_equal (gconstpointer aval,
   const DBusGFuncSignature *b = bval;
   const GType *atypes;
   const GType *btypes;
+  guint i, j;
 
-  if (a->rettype != b->rettype)
+  if (a->rettype != b->rettype
+      || a->n_params != b->n_params)
     return FALSE;
 
   atypes = a->params;
   btypes = b->params;
 
-  while (*atypes != G_TYPE_INVALID)
+  for (i = 0; i < a->n_params; i++)
     {
       if (*btypes != *atypes)
        return FALSE;
       atypes++;
       btypes++;
     }
-  if (*btypes != G_TYPE_INVALID)
-    return FALSE;
       
   return TRUE;
 }