X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=cop.h;h=6aa32df899a180257de9156c879c1db1bd406e19;hb=66deed9817b33ffdba92ebd891ab65a10020d4be;hp=b5033090d977661e33d20fc0d70e0c0f7f627bdd;hpb=c07a80fdfe3926b5eb0585b674aa5d1f57b32ade;p=p5sagit%2Fp5-mst-13.2.git diff --git a/cop.h b/cop.h index b503309..6aa32df 100644 --- a/cop.h +++ b/cop.h @@ -52,6 +52,9 @@ struct block_sub { } \ if (cx->blk_sub.cv) { \ if (!(CvDEPTH(cx->blk_sub.cv) = cx->blk_sub.olddepth)) { \ + if (cx->blk_sub.hasargs) { \ + SvREFCNT_inc((SV*)cx->blk_sub.argarray); \ + } \ SvREFCNT_dec((SV*)cx->blk_sub.cv); \ } \ } @@ -144,7 +147,7 @@ struct block { cx->blk_oldretsp = retstack_ix, \ cx->blk_oldpm = curpm, \ cx->blk_gimme = gimme; \ - DEBUG_l( fprintf(stderr,"Entering block %ld, type %s\n", \ + DEBUG_l( PerlIO_printf(PerlIO_stderr(), "Entering block %ld, type %s\n", \ (long)cxstack_ix, block_type[t]); ) /* Exit a block (RETURN and LAST). */ @@ -156,7 +159,7 @@ struct block { retstack_ix = cx->blk_oldretsp, \ pm = cx->blk_oldpm, \ gimme = cx->blk_gimme; \ - DEBUG_l( fprintf(stderr,"Leaving block %ld, type %s\n", \ + DEBUG_l( PerlIO_printf(PerlIO_stderr(), "Leaving block %ld, type %s\n", \ (long)cxstack_ix+1,block_type[cx->cx_type]); ) /* Continue a block elsewhere (NEXT and REDO). */