gnome-perl-introspection r42 - trunk/Glib-Object-Introspection/xs



Author: tsch
Date: Sun Nov  9 14:29:52 2008
New Revision: 42
URL: http://svn.gnome.org/viewvc/gnome-perl-introspection?rev=42&view=rev

Log:
Properly handle GI_INFO_TYPE_CALLBACK.

Ref the result of g_base_info_get_container to acquire ownership.


Modified:
   trunk/Glib-Object-Introspection/xs/IdlBaseInfo.xs

Modified: trunk/Glib-Object-Introspection/xs/IdlBaseInfo.xs
==============================================================================
--- trunk/Glib-Object-Introspection/xs/IdlBaseInfo.xs	(original)
+++ trunk/Glib-Object-Introspection/xs/IdlBaseInfo.xs	Sun Nov  9 14:29:52 2008
@@ -35,7 +35,7 @@
 				package = "Glib::Object::Introspection::FunctionInfo";
 				break;
 			case GI_INFO_TYPE_CALLBACK:
-				croak ("Callback info?");
+				package = "Glib::Object::Introspection::CallbackInfo";
 				break;
 			case GI_INFO_TYPE_STRUCT:
 				package = "Glib::Object::Introspection::StructInfo";
@@ -107,6 +107,7 @@
 	gperl_set_isa ("Glib::Object::Introspection::ArgInfo", "Glib::Object::Introspection::BaseInfo");
 	gperl_set_isa ("Glib::Object::Introspection::BoxedInfo", "Glib::Object::Introspection::StructInfo");
 	gperl_set_isa ("Glib::Object::Introspection::CallableInfo", "Glib::Object::Introspection::BaseInfo");
+	gperl_set_isa ("Glib::Object::Introspection::CallbackInfo", "Glib::Object::Introspection::CallableInfo");
 	gperl_set_isa ("Glib::Object::Introspection::ConstantInfo", "Glib::Object::Introspection::BaseInfo");
 	gperl_set_isa ("Glib::Object::Introspection::EnumInfo", "Glib::Object::Introspection::RegisteredTypeInfo");
 	gperl_set_isa ("Glib::Object::Introspection::ErrorInfo", "Glib::Object::Introspection::BaseInfo");
@@ -141,6 +142,9 @@
 const gchar * g_base_info_get_annotation (GIBaseInfo *info, const gchar  *name);
 
 GIBaseInfo * g_base_info_get_container (GIBaseInfo *info);
+    CLEANUP:
+	/* FIXME: should this be necessary? */
+	g_base_info_ref (info);
 
 # FIXME: Needed?
 # GIBaseInfo * g_info_new (GIInfoType type, GIBaseInfo *container, const guchar *metadata, guint32 offset);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]