Re: Problems binding a struct that's not a GObject



Emmanuel Rodriguez wrote:
I'm writing the bindings for libunique (http://live.gnome.org/LibUnique) so
far everything works fine except for the marshaling of the struct
"UniqueMessageData". This type is a normal struct and not a GObject
documented as follows:
  typedef struct _UniqueMessageData UniqueMessageData;

It appears to be registered as a GBoxed type, though. That means you can put it in your 'maps' file and get the conversion stuff auto-generated for you. And since UniqueMessageData seems to be opaque intentionally, the default GBoxed representation chosen by Glib::Boxed (opaque scalar reference) seems fine and you shouldn't need custom converters.

I get in the first shell:
GType UniqueMessageData (138666312) is not registered with gperl at
examples/sample.pl line 40.

This happens because a signal apparently uses UniqueMessageData in its signature, so the generic signal marshaller in Glib complains that this type hasn't been registered with the bindings. If you put UniqueMessageData in your 'maps' file, this should just work.



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