[Vala] poppler-glib binding bug? (patch included)



Hi all,

I'm new to Vala, so please bear with me if I draw the wrong conclusions
here...

poppler/glib/poppler-page.h defines the following struct:

struct  _PopplerLinkMapping
{
  PopplerRectangle area;
  PopplerAction *action;
};

In my Vala code I do something like this (simplified):

unowned GLib.List<unowned LinkMapping> mappings =
page.get_link_mapping();

foreach (var m in mappings) {
        double y1 = m.area.y1;
}

The generated C code assumes that area is a pointer which obviously
won't work:

double y1;
y1_rel = m->area->y1;

Marking PopplerRectangle as is_value_type in
vapi/packages/poppler-glib/poppler-glib.metadata (see attached patch) 
and re-generating the .vapi file fixes the problem for me. I haven't
found any documentation on the exact effects of is_value_type="1" so I'm
not sure whether this might break other code.

Comments welcome.

Cheers,

Rene

Attachment: 0001-poppler-glib-mark-PopplerRectangle-as-is_value_type.patch
Description: application/mbox



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