Add new tests for keys in %+ and %-
[p5sagit/p5-mst-13.2.git] / pp_ctl.c
index 51180cf..3aecb2d 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2658,9 +2658,8 @@ S_save_lines(pTHX_ AV *array, SV *sv)
 
     while (s && s < send) {
        const char *t;
-       SV * const tmpstr = newSV(0);
+       SV * const tmpstr = newSV_type(SVt_PVMG);
 
-       sv_upgrade(tmpstr, SVt_PVMG);
        t = strchr(s, '\n');
        if (t)
            t++;
@@ -2874,7 +2873,6 @@ Perl_find_runcv(pTHX_ U32 *db_seqp)
  * outside is the lexically enclosing CV (if any) that invoked us.
  */
 
-/* With USE_5005THREADS, eval_owner must be held on entry to doeval */
 STATIC OP *
 S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq)
 {
@@ -2888,8 +2886,7 @@ S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq)
     PUSHMARK(SP);
 
     SAVESPTR(PL_compcv);
-    PL_compcv = (CV*)newSV(0);
-    sv_upgrade((SV *)PL_compcv, SVt_PVCV);
+    PL_compcv = (CV*)newSV_type(SVt_PVCV);
     CvEVAL_on(PL_compcv);
     assert(CxTYPE(&cxstack[cxstack_ix]) == CXt_EVAL);
     cxstack[cxstack_ix].blk_eval.cv = PL_compcv;
@@ -3445,6 +3442,7 @@ PP(pp_entereval)
     }
     sv = POPs;
 
+    TAINT_IF(SvTAINTED(sv));
     TAINT_PROPER("eval");
 
     ENTER;