Method incompatibility when migrating from Grnome2::Rsvg to Glib::Object::Introspection



Hi all,

I'm migrating my code from the now deprecated Gnome2::Rsvg to the
Glib::Object::Introspection module with:

  Glib::Object::Introspection->setup
                ( basename => 'Rsvg',
                  version => '2.0',
                  package => 'Rsvg2',
                );
  $handle = Rsvg2::Handle->new();
  $handle->write($str);

The write() method now throws an error, when passing a string containing
the SVG XML:

  need an array ref to convert to GArray

although this code used to work in Gnome2::Rsvg.

Looking at the C function signature in
https://developer.gnome.org/rsvg/stable/RsvgHandle.html#rsvg-handle-write
reveals that rsvg_handle_write() accepts a "const guchar *" as the
argument containing the SVG XML.

Why is a "const guchar *" now expecting a GArray (array ref in Perl)
with the G::O::I binding?

BTW, trying to satisfy the Perl interpreter by invoking
"$handle->write([$str])" yields:

  internal problem: GType CairoContext (94611185394944) has not been
registered with GPerl at
/usr/lib/x86_64-linux-gnu/perl5/5.30/Glib/Object/Introspection.pm line 67.

Any hints what might be the culprit here?

Thanks,
Franz



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