avoid stash pointers in optree under USE_ITHREADS
[p5sagit/p5-mst-13.2.git] / pp_sys.c
index 9c73980..98ecfac 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -411,7 +411,7 @@ PP(pp_indread)
 
 PP(pp_rcatline)
 {
-    PL_last_in_gv = (GV*)cSVOP->op_sv;
+    PL_last_in_gv = cGVOP;
     return do_readline();
 }
 
@@ -475,8 +475,8 @@ PP(pp_die)
                HV *stash = SvSTASH(SvRV(error));
                GV *gv = gv_fetchmethod(stash, "PROPAGATE");
                if (gv) {
-                   SV *file = sv_2mortal(newSVsv(GvSV(PL_curcop->cop_filegv)));
-                   SV *line = sv_2mortal(newSViv(PL_curcop->cop_line));
+                   SV *file = sv_2mortal(newSVsv(CopFILESV(PL_curcop)));
+                   SV *line = sv_2mortal(newSViv(CopLINE(PL_curcop)));
                    EXTEND(SP, 3);
                    PUSHMARK(SP);
                    PUSHs(error);
@@ -2412,7 +2412,7 @@ PP(pp_stat)
     STRLEN n_a;
 
     if (PL_op->op_flags & OPf_REF) {
-       tmpgv = (GV*)cSVOP->op_sv;
+       tmpgv = cGVOP;
       do_fstat:
        if (tmpgv != PL_defgv) {
            PL_laststype = OP_STAT;
@@ -2857,7 +2857,7 @@ PP(pp_fttty)
     STRLEN n_a;
 
     if (PL_op->op_flags & OPf_REF)
-       gv = (GV*)cSVOP->op_sv;
+       gv = cGVOP;
     else if (isGV(TOPs))
        gv = (GV*)POPs;
     else if (SvROK(TOPs) && isGV(SvRV(TOPs)))
@@ -2898,7 +2898,7 @@ PP(pp_fttext)
     STRLEN n_a;
 
     if (PL_op->op_flags & OPf_REF)
-       gv = (GV*)cSVOP->op_sv;
+       gv = cGVOP;
     else if (isGV(TOPs))
        gv = (GV*)POPs;
     else if (SvROK(TOPs) && isGV(SvRV(TOPs)))
@@ -2949,7 +2949,7 @@ PP(pp_fttext)
        else {
            if (ckWARN(WARN_UNOPENED))
                Perl_warner(aTHX_ WARN_UNOPENED, "Test on unopened file <%s>",
-                 GvENAME((GV*)cSVOP->op_sv));
+                           GvENAME(cGVOP));
            SETERRNO(EBADF,RMS$_IFI);
            RETPUSHUNDEF;
        }