summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-08-22 13:36:44 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-08-22 13:36:44 +0000
commit059a8bb71dff4eb7a6ca47bbe766a3e1c7c58020 (patch)
tree9d22fbfcafc8c55cc7133507c464803748550696 /perl.c
parent10d9c778f985d5d6d434ffb325e0b7b1d8369cb5 (diff)
downloadperl-059a8bb71dff4eb7a6ca47bbe766a3e1c7c58020.tar.gz
Bytecompiler patches from Benjamin Stuhl.
p4raw-id: //depot/perl@6763
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/perl.c b/perl.c
index 197e737274..89e6429f17 100644
--- a/perl.c
+++ b/perl.c
@@ -3685,7 +3685,14 @@ Perl_call_list(pTHX_ I32 oldscope, AV *paramList)
while (AvFILL(paramList) >= 0) {
cv = (CV*)av_shift(paramList);
- SAVEFREESV(cv);
+ if ((PL_minus_c & 0x10) && (paramList == PL_beginav)) {
+ /* save PL_beginav for compiler */
+ if (! PL_beginav_save)
+ PL_beginav_save = newAV();
+ av_push(PL_beginav_save, (SV*)cv);
+ } else {
+ SAVEFREESV(cv);
+ }
#ifdef PERL_FLEXIBLE_EXCEPTIONS
CALLPROTECT(aTHX_ pcur_env, &ret, MEMBER_TO_FPTR(S_vcall_list_body), cv);
#else