summaryrefslogtreecommitdiff
path: root/toke.c
diff options
context:
space:
mode:
authorMalcolm Beattie <mbeattie@sable.ox.ac.uk>1997-07-17 13:35:51 +0000
committerMalcolm Beattie <mbeattie@sable.ox.ac.uk>1997-07-17 13:35:51 +0000
commit6d4ff0d2f86d3c242b3f29bee3c2734df9ab8a3a (patch)
tree214aad99b5b3c414ccc9a349a7aacbdda3b96649 /toke.c
parentc03294656c9980c235cc5951a63088fd96d33704 (diff)
downloadperl-6d4ff0d2f86d3c242b3f29bee3c2734df9ab8a3a.tar.gz
Fix multiple problems with lexical @_.
p4raw-id: //depot/perl@39
Diffstat (limited to 'toke.c')
-rw-r--r--toke.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/toke.c b/toke.c
index 705b9ab8b7..54ad907d73 100644
--- a/toke.c
+++ b/toke.c
@@ -5225,16 +5225,23 @@ U32 flags;
CvFLAGS(compcv) |= flags;
comppad = newAV();
+ av_push(comppad, Nullsv);
+ curpad = AvARRAY(comppad);
comppad_name = newAV();
comppad_name_fill = 0;
-#ifdef USE_THREADS
- av_store(comppad_name, 0, newSVpv("@_", 2));
-#endif /* USE_THREADS */
min_intro_pending = 0;
- av_push(comppad, Nullsv);
- curpad = AvARRAY(comppad);
padix = 0;
subline = curcop->cop_line;
+#ifdef USE_THREADS
+ av_store(comppad_name, 0, newSVpv("@_", 2));
+ curpad[0] = (SV*)newAV();
+ SvPADMY_on(curpad[0]); /* XXX Needed? */
+ CvOWNER(compcv) = 0;
+ New(666, CvMUTEXP(compcv), 1, pthread_mutex_t);
+ MUTEX_INIT(CvMUTEXP(compcv));
+ New(666, CvCONDP(compcv), 1, pthread_cond_t);
+ COND_INIT(CvCONDP(compcv));
+#endif /* USE_THREADS */
comppadlist = newAV();
AvREAL_off(comppadlist);