tags 636132 patch
user ubuntu-de...@lists.ubuntu.com
usertags 636132 ubuntu-patch precise
thanks

On Sat, Aug 20, 2011 at 06:47:12PM +0100, Dominic Hargreaves wrote:
> On Sun, Jul 31, 2011 at 01:24:54PM +0100, Dominic Hargreaves wrote:
> > This package FTBFS with perl 5.14:
> > 
> > #   Failed test 'signatures parse in eval'
> > #   at t/eval.t line 8.
> > # forced to realloc PL_linestr for line use signatures;sub foo ($bar) { 
> > $bar }
> > # ;, bailing out before we crash harder at 
> > /build/dom-libsignatures-perl_0.05-1+b2-i386-TwSmvh/libsignatures-perl-0.05/blib/lib/signatures.pm
> >  line 87.
> > Undefined subroutine &main::foo called at t/eval.t line 11.
> > # Looks like you planned 8 tests but ran 2.
> > # Looks like you failed 1 test of 2 run.
> > # Looks like your test exited with 255 just after 2.
> > 
> > This is
> > <https://rt.cpan.org/Public/Bug/Display.html?id=66997>
> 
> There seems to be no fix upstream at the moment.

I just sent a patch upstream based on what libdevel-declare-perl does.
Here's a copy which I think should be suitable for upload:

  * With Perl >= 5.13.6, reallocate PL_linestr in a block hook to avoid
    reallocations; borrowed loosely from Devel::Declare (closes: #636132).

--- libsignatures-perl-0.05.orig/signatures.xs
+++ libsignatures-perl-0.05/signatures.xs
@@ -241,6 +241,16 @@
        return ret;
 }
 
+#if PERL_BCDVERSION >= 0x5013006
+STATIC void
+block_start (pTHX_ int full) {
+       PERL_UNUSED_VAR (full);
+
+       if (SvLEN (PL_linestr) < 16384)
+               lex_grow_linestr (16384);
+}
+#endif
+
 STATIC OP *
 before_eval (pTHX_ OP *op, void *user_data) {
        dSP;
@@ -293,12 +303,19 @@
                char *f_class
        PREINIT:
                userdata_t *ud;
+#if PERL_BCDVERSION >= 0x5013006
+               static BHK bhk;
+#endif
        INIT:
                Newx (ud, 1, userdata_t);
                ud->class = newSVsv (class);
                ud->f_class = f_class;
        CODE:
                ud->parser_id = hook_parser_setup ();
+#if PERL_BCDVERSION >= 0x5013006
+               BhkENTRY_set (&bhk, bhk_start, block_start);
+               Perl_blockhook_register (aTHX_ &bhk);
+#endif
                ud->eval_hook = hook_op_check (OP_ENTEREVAL, handle_eval, ud);
                RETVAL = (UV)hook_op_check (OP_CONST, handle_proto, ud);
        OUTPUT:

Thanks,

-- 
Colin Watson                                       [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to