girffi: Fix g_function_info_new_for_address to respect G_VFUNC_THROWS
authorJasper St. Pierre <jstpierre@mecheye.net>
Fri, 3 Feb 2012 18:47:17 +0000 (13:47 -0500)
committerJasper St. Pierre <jstpierre@mecheye.net>
Fri, 3 Feb 2012 18:48:39 +0000 (13:48 -0500)
girepository/girffi.c

index e727bea..d4c728a 100644 (file)
@@ -301,8 +301,15 @@ g_function_invoker_new_for_address (gpointer           addr,
         throws = (flags & GI_FUNCTION_THROWS) != 0;
       }
       break;
-    case GI_INFO_TYPE_CALLBACK:
     case GI_INFO_TYPE_VFUNC:
+      {
+        GIVFuncInfoFlags flags;
+        flags = g_vfunc_info_get_flags ((GIVFuncInfo *)info);
+        throws = (flags & GI_VFUNC_THROWS) != 0;
+      }
+      is_method = FALSE;
+      break;
+    case GI_INFO_TYPE_CALLBACK:
       is_method = TRUE;
       throws = FALSE;
       break;