diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 1997-11-22 16:30:27 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 1997-11-22 16:30:27 +0000 |
commit | f81342c8ed56420002f9ad172de0b7485a7c6b96 (patch) | |
tree | 921a34f0d4476503ddbf328e789517d6cfd07e42 /pp_ctl.c | |
parent | a868473fb9213692497e27ae968094b32a41c501 (diff) | |
parent | 0da4822f11e97ce202166899552c06d720eb835a (diff) | |
download | perl-f81342c8ed56420002f9ad172de0b7485a7c6b96.tar.gz |
Resolve ansiperl against win32
p4raw-id: //depot/ansiperl@278
Diffstat (limited to 'pp_ctl.c')
-rw-r--r-- | pp_ctl.c | 26 |
1 files changed, 18 insertions, 8 deletions
@@ -546,14 +546,17 @@ PP(pp_grepstart) ENTER; /* enter outer scope */ SAVETMPS; - SAVESPTR(GvSV(defgv)); - +#if 0 + SAVE_DEFSV; +#else + save_sptr(av_fetch(thr->threadsv, find_threadsv("_"), FALSE)); +#endif ENTER; /* enter inner scope */ SAVESPTR(curpm); src = stack_base[*markstack_ptr]; SvTEMP_off(src); - GvSV(defgv) = src; + DEFSV = src; PUTBACK; if (op->op_type == OP_MAPSTART) @@ -623,7 +626,7 @@ PP(pp_mapwhile) src = stack_base[markstack_ptr[-1]]; SvTEMP_off(src); - GvSV(defgv) = src; + DEFSV = src; RETURNOP(cLOGOP->op_other); } @@ -1334,12 +1337,19 @@ PP(pp_enteriter) ENTER; SAVETMPS; - if (op->op_targ) - svp = &curpad[op->op_targ]; /* "my" variable */ +#ifdef USE_THREADS + if (op->op_flags & OPf_SPECIAL) + svp = save_threadsv(op->op_targ); /* per-thread variable */ else +#endif /* USE_THREADS */ + if (op->op_targ) { + svp = &curpad[op->op_targ]; /* "my" variable */ + SAVESPTR(*svp); + } + else { svp = &GvSV((GV*)POPs); /* symbol table variable */ - - SAVESPTR(*svp); + SAVESPTR(*svp); + } ENTER; |