diff --git a/gobject/gobject.c b/gobject/gobject.c index 78fe203e9..4a35cd065 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -1404,9 +1404,12 @@ object_interface_check_properties (gpointer check_data, class = g_type_class_ref (iface_class->g_instance_type); - if (!G_IS_OBJECT_CLASS (class)) + if (class == NULL) return; + if (!G_IS_OBJECT_CLASS (class)) + goto out; + pspecs = g_param_spec_pool_list (pspec_pool, iface_type, &n); while (n--) @@ -1537,6 +1540,7 @@ object_interface_check_properties (gpointer check_data, g_free (pspecs); + out: g_type_class_unref (class); }