When the block is a closure, the cloned CV created on each call
was never freed
p4raw-id: //depot/perl@23996
}
ST(0) = ret;
POPBLOCK(cx,PL_curpm);
+ LEAVESUB(cv);
CATCH_SET(oldcatch);
XSRETURN(1);
}
CATCH_SET(TRUE);
PUSHBLOCK(cx, CXt_SUB, SP);
PUSHSUB(cx);
- if (!CvDEPTH(cv))
- (void)SvREFCNT_inc(cv);
for(index = 1 ; index < items ; index++) {
GvSV(PL_defgv) = ST(index);
if (SvTRUE(*PL_stack_sp)) {
ST(0) = ST(index);
POPBLOCK(cx,PL_curpm);
+ LEAVESUB(cv);
CATCH_SET(oldcatch);
XSRETURN(1);
}
}
POPBLOCK(cx,PL_curpm);
+ LEAVESUB(cv);
CATCH_SET(oldcatch);
XSRETURN_UNDEF;
}
@ISA = qw(Exporter);
@EXPORT_OK = qw(blessed dualvar reftype weaken isweak tainted readonly openhandle refaddr isvstring looks_like_number set_prototype);
-$VERSION = "1.14";
+$VERSION = "1.14_1";
$VERSION = eval $VERSION;
sub export_fail {