gtype: make these cases fatal.
authorStefan Sauer <ensonic@users.sf.net>
Tue, 12 Jun 2012 18:22:39 +0000 (20:22 +0200)
committerStefan Sauer <ensonic@users.sf.net>
Tue, 12 Jun 2012 18:45:29 +0000 (20:45 +0200)
Otherwise we crash with a null-ptr deref in g_object_newv and ever there we
should not return null, as we're saying that object creation will not return
null.

gobject/gtype.c

index f9e5a61..075e2bc 100644 (file)
@@ -1854,16 +1854,14 @@ g_type_create_instance (GType type)
   node = lookup_type_node_I (type);
   if (!node || !node->is_instantiatable)
     {
-      g_warning ("cannot create new instance of invalid (non-instantiatable) type `%s'",
+      g_error ("cannot create new instance of invalid (non-instantiatable) type `%s'",
                 type_descriptive_name_I (type));
-      return NULL;
     }
   /* G_TYPE_IS_ABSTRACT() is an external call: _U */
   if (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (type))
     {
-      g_warning ("cannot create instance of abstract (non-instantiatable) type `%s'",
+      g_error ("cannot create instance of abstract (non-instantiatable) type `%s'",
                 type_descriptive_name_I (type));
-      return NULL;
     }
   
   class = g_type_class_ref (type);