Re: G::O::I based bindings and problem passing char array ref
- From: Jeremy Volkening <jdv base2bio com>
- To: gtk-perl-list gnome org
- Subject: Re: G::O::I based bindings and problem passing char array ref
- Date: Fri, 3 Jun 2016 14:44:58 -0500
If I futz with the .gir and change the new_from_data() "data"
parameter type to a guint8 array (and then pass it a character
array ref) I can load and read the page number from most of the
files that were previously throwing errors. Then the script
segfaults almost every time...
Can you provide a backtrace and or Valgrind output?
# gdb --args perl program.pl
(gdb) run
...
(gdb) bt
# valgrind perl program.pl
Attached is the valgrind dump from my test script. This is after
changing the section of the .gir for poppler_document_new_from_data()
FROM:
<parameter name="data" transfer-ownership="none">
<doc xml:space="preserve">the pdf data contained in a char array</doc>
<type name="utf8" c:type="char*"/>
</parameter>
TO:
<parameter name="data" transfer-ownership="none">
<doc xml:space="preserve">the pdf data contained in a char array</doc>
<array length="1" zero-terminated="0" c:type="gchar*">
<type name="guint8"/>
</array>
</parameter>
and then passing an array ref. Oddly enough, if I run the test script through
valgrind everything works (i.e. it prints the expected metadata and renders
the first page as PNG). This is true for any PDF. If I run the same command
without valgrind it segfaults. Apparently valgrind helps it survive
errors. This proves in any case that the PDF is being read.
I have also observed that, with the unmodified libs, any PDF that 'file'
reports as 'utf-8' or 'unknown-8bit' works, but anything reported as
'binary' or 'iso-8859-1' (most files) fails.
Jeremy
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]