Re: gobject-introspection and GBoxed



On Wed, Jan 11, 2012 at 14:47,  <jcupitt gmail com> wrote:
> Hi all,
>
> I'm adding gobject-introspection support to my library. It's working
> well for the GObject classes, but I just can't get it to work for
> GBoxed objects. I'm sure I'm missing something obvious. Do I need to
> write an override to make a class for the type myself?
>
> I've spent some time googling and grepping around and not found a
> simple example. Again, I'm probably being stupid.
>
> I'm doing something like this in a header:
>
> /**
>  * VIPS_TYPE_BLOB:
>  *
>  * The %GType for a #VipsBlob.
>  */
> #define VIPS_TYPE_BLOB (vips_blob_get_type())
> GType vips_blob_get_type( void );
> typedef ... VipsBlob;
> VipsBlob *vips_blob_new( int n );
>
> and this in the .c file:
>
> GType
> vips_blob_get_type( void )
> {
>        static GType type = 0;
>
>        if( !type )
>                type = g_boxed_type_register_static( "VipsBlob",
>                        (GBoxedCopyFunc) ...,
>                        (GBoxedFreeFunc) ... );
>
>        return( type );
> }
>
> /**
>  * vips_blob_new:
>  * @n:
>  *
>  * Returns: (transfer full): the new #VipsBlob.
>  */
> VipsBlob *
> vips_blob_new( int n )
> {
>        return (...a new VipsBlob);
> }
>
> Now when I start up Python I get this:
>
>>>> from gi.repository import Vips
>>>> Vips.blob_new
> <function blob_new at 0x7ffff7e31de8>
>>>> Vips.blob_new(12)
>
> Program received signal SIGSEGV, Segmentation fault.
> _args_cache_generate (callable_cache=0x9b04c0, callable_info=0xa6d280)
>    at /build/buildd/pygobject-3.0.0/gi/pygi-cache.c:1282
>
> This is on current Ubuntu, so:
>
> $ pkg-config gobject-introspection-1.0 --modversion
> 1.30.0

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.

Thanks,

Tomeu

> John
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-devel-list


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