diff options
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | glib/dbus-gobject.c | 11 | 
2 files changed, 13 insertions, 5 deletions
| @@ -1,5 +1,12 @@  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  	after we unref it (Patch from Chris Boscolo, #2174). diff --git a/glib/dbus-gobject.c b/glib/dbus-gobject.c index da5da3b2..8e43155a 100644 --- a/glib/dbus-gobject.c +++ b/glib/dbus-gobject.c @@ -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;  } | 
