Hi,

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;


I added a typemap file to the project with the following lines:
  TYPEMAP

  UniqueMessageData*         T_GPERL_GENERIC_WRAPPER
  UniqueMessageData_ornull*  T_GPERL_GENERIC_WRAPPER

And created newSVUniqueMessageData() and SvUniqueMessageData() in the
corresponding XS file. The idea is to convert the struct into a perl hash
and vice-versa.

So far the XS module compiles and can be loaded, but when I run the example
application (from 2 different shells):

shell1$ perl -Mblib examples/sample.pl "Hello world"
shell2$ perl -Mblib examples/sample.pl "It works"

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

This bug only happens if I connect the signal 'message-received' and if the
main application receives a message. If the signal handler is not connected
and a message is sent there will be no crash. This leads me to suppose that
the marshaling of the struct UniqueMessageData to a Perl hash ref is not
done properly. I seem to know what's the issue but I don't know how to fix
it.

The module is hosted here:  http://github.com/potyl/gtk2-unique/tree/master

-- 
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to