Re: Cairo 0.91 (beta)
- From: Torsten Schoenfeld <kaffeetisch gmx de>
- To: gtk-perl-list gnome org
- Subject: Re: Cairo 0.91 (beta)
- Date: Sun, 13 Aug 2006 16:17:46 +0200
On Sun, 2006-08-13 at 10:11 +0400, Alexey Tourbin wrote:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 14787)]
0xb7c0b01d in read_func_marshaller (closure=0x81ba1d0, data=0x81bac58 "\211PNG\r\n\032\n", length=8) at
CairoSurface.xs:233
233 memcpy (data, retval, n_a);
(gdb) l
228 status = SvCairoStatus (ERRSV);
229 } else {
230 STRLEN n_a;
231 char *retval;
232 retval = POPpx;
233 memcpy (data, retval, n_a);
234 }
235
236 PUTBACK;
237 FREETMPS;
(gdb) p n_a
$1 = 136029216
(gdb)
Ouch. Looks like POPpx changed from perl 5.8.7 to 5.8.8. With 5.8.7,
everything works as expected for me. `perldoc perlapi´ says
POPpx Pops a string off the stack. Requires a variable STRLEN n_a in
scope.
In my <perl>/CORE/pp.h, POPpx is defined to call SvPVx which, in sv.h,
uses SvPV which uses SvPV_flags which finally sets n_a to SvCUR(sv).
Apparently this can't be relied upon, so I'll look into using just POPs
and sv_len.
--
Thanks for the report,
-Torsten
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]