Re: Gtk2::MozEmbed + DOM



On Thu, 2005-03-24 at 07:50 -0500, muppet wrote:

GtkMozEmbed.c:557: error: invalid conversion from `gint' to `
   GtkMozEmbedReloadFlags'
...
        /* * * * line 557 is next * * * */
        GtkMozEmbedReloadFlags  flags = SvGtkMozEmbedReloadFlags 
(ST(1));

did you add GtkMozEmbedReloadFlags to a maps file?  if so (and your 
project is properly set up, which i assume it is), the #define for this 
macro will be in build/whatever-autogen.h, protected by #ifdef on the 
TYPE macro.  e.g.

Gtk2::MozEmbed registers custom GTypes for the enums and the flags.  But
the problem is that the type macros:

    #if FOO_TYPE_BAR
    # define SvFooBar(...)  ...
    # define newSVFooBar(..) ...
    #endif

are defined to directly call gperl_convert_(enum|flags) which return a
gint or a guint32.  It looks like C++ is stricter about the enum <-> int
distinction and thus says that the assignment above is an error.  If you
change CodeGen.pm to cast the value to the proper enum/flags type, it
works.  Patch attached.

So, compilation now works.  But this just reveals another problem that
occurs when the document generators try to do their work:

/usr/bin/perl5.8.6: symbol lookup error: blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so: undefined symbol: 
_Z21gperl_register_objectmPKc

I've no idea what this is about.  Does the C++ linker need Glib.so to be
linked in explicitly?  And what about this weird symbol name?  Glib
doesn't define it.  Do you need to compile every module with c++ to make
it work?

-- 
Bye,
-Torsten

Attachment: codegen.patch
Description: Text Data



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