OSDN Git Service

Mask out G_SIGNAL_TYPE_STATIC_SCOPE when comparing types
authorAlexander Larsson <alexl@redhat.com>
Fri, 2 Mar 2012 19:22:29 +0000 (20:22 +0100)
committerAlexander Larsson <alexl@redhat.com>
Fri, 2 Mar 2012 19:22:29 +0000 (20:22 +0100)
gobject/gsignal.c

index 54542c1..14054b5 100644 (file)
@@ -1703,7 +1703,7 @@ g_signal_newv (const gchar       *signal_name,
   else if (n_params == 1 && return_type == G_TYPE_NONE)
     {
 #define ADD_CHECK(__type__) \
-      else if (g_type_is_a (param_types[0], G_TYPE_ ##__type__))         \
+      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
        {                                                                \
          builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
          va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \