Hi Tomeu, On 12 January 2012 11:02, Tomeu Vizoso <to...@sugarlabs.org> wrote: > Looks like a bug in pygobject, could you file a bug with a backtrace? > > It may be worth trying out with the latest release to scope better the > problem.
I've tried with git master gobject-introspection and 3.0.3 pygobject and the crash has gone but it still doesn't work. Should I file a bug or am I making a stupid error? I have this in the header: ---- /* A very simple boxed type for testing. Just holds an int. */ typedef struct _VipsThing { int i; } VipsThing; /** * VIPS_TYPE_THING: * * The #GType for a #VipsThing. */ #define VIPS_TYPE_THING (vips_thing_get_type()) GType vips_thing_get_type( void ); VipsThing *vips_thing_new( int i ); int vips_thing_get_i( VipsThing *thing ); ----- this in the .c file: ----------- /* A very simple boxed type for testing. Just an int. */ /** * vips_thing_new: * @n: * * Returns: (transfer full): a new #VipsThing. */ VipsThing * vips_thing_new( int i ) { VipsThing *thing; thing = g_new( VipsThing, 1 ); thing->i = i; printf( "vips_thing_new: %d %p\n", i, thing ); return( thing ); } static VipsThing * vips_thing_copy( VipsThing *thing ) { VipsThing *thing2; thing2 = vips_thing_new( thing->i ); printf( "vips_thing_copy: %d %p = %p\n", thing->i, thing2, thing ); return( thing2 ); } static void vips_thing_free( VipsThing *thing ) { printf( "vips_thing_free: %d %p\n", thing->i, thing ); g_free( thing ); } int vips_thing_get_i( VipsThing *thing ) { printf( "vips_thing_get_i: %d %p\n", thing->i, thing ); return( thing->i ); } G_DEFINE_BOXED_TYPE( VipsThing, vips_thing, (GBoxedCopyFunc) vips_thing_copy, (GBoxedFreeFunc) vips_thing_free ); ------------------- But this happens in Python: >>> from gi.repository import Vips >>> dir(Vips) ... long list, all the GObject based types I use are there and work, so I think the introspection stuff is OK ... Vips.thing* is not there, but Vips.Thing is >>> Vips.Thing Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/john/vips/lib/python2.7/site-packages/gi/module.py", line 243, in __getattr__ return getattr(self._introspection_module, name) NotImplementedError: <gi.BoxedInfo object (Thing) at 0x0x7f9e7ac674d0> >>> Vips.Thing(12) NotImplementedError: <gi.BoxedInfo object (Thing) at 0x0x7f9e7ac676c8> >>> Vips.Thing.new(12) NotImplementedError: <gi.BoxedInfo object (Thing) at 0x0x7f9e7ac675f0> >>> dir(Vips.Thing) NotImplementedError: <gi.BoxedInfo object (Thing) at 0x0x7f9e7ac67a70> >>> Vips.thing_new AttributeError: 'gi.repository.Vips' object has no attribute 'thing_new' >>> The "/home/john/vips/lib/python2.7/site-packages/gi/module.py" in the backtrace proves that I'm using my own build of gi master and not the host one, I hope. John _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list