I wonder if Glib::Object->new could check its arg count to detect
misuse or confusion with the various single-arg class specific "new"s.
I think currently it ignores a "key" without a value.  There's even an
apparent stray type name (in place of a key) in the test suite.

--- GObject.xs	23 Jun 2008 09:08:35 +1000	1.75
+++ GObject.xs	14 Jul 2008 18:29:29 +1000	
@@ -1108,6 +1108,9 @@
 	if (G_TYPE_IS_ABSTRACT (object_type))
 		croak ("cannot create instance of abstract (non-instantiatable)"
 		       " type `%s'", g_type_name (object_type));
+	if (0 != ((items - 1) % 2))
+		croak ("new method expects name => value pairs "
+		       "(odd number of arguments detected)");
 	if (items > FIRST_ARG) {
 		int i;
 		if (NULL == (oclass = g_type_class_ref (object_type)))
--- 2.t	30 Dec 2007 10:47:23 +1100	1.9
+++ 2.t	15 Jul 2008 09:26:41 +1000	
@@ -18,7 +18,7 @@
 
 #########################
 
-my $obj = new Glib::Object "Glib::Object";
+my $obj = Glib::Object::new "Glib::Object";
 isa_ok ($obj, 'Glib::Object');
 
 $obj->freeze_notify;
_______________________________________________
gtk-perl-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to