This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
op_class_sv removed for threaded perls op_class_targ removed for non-threaded perls
[perl5.git] / op.h
diff --git a/op.h b/op.h
index bec9df4..f0abfac 100644 (file)
--- a/op.h
+++ b/op.h
@@ -138,6 +138,7 @@ Deprecated.  Use C<GIMME_V> instead.
                                 */
                                 /*  On OP_PADRANGE, push @_ */
                                 /*  On OP_DUMP, has no label */
+                                /*  On OP_UNSTACK, in a foreach loop */
 
 /* old names; don't use in new code, but don't break them, either */
 #define OPf_LIST       OPf_WANT_LIST
@@ -163,9 +164,6 @@ Deprecated.  Use C<GIMME_V> instead.
  in dynamic context */
 #define OPpENTERSUB_LVAL_MASK (OPpLVAL_INTRO|OPpENTERSUB_INARGS)
 
-/* VMS-specific hints in COPs */
-#define OPpHINT_M_VMSISH_MASK (OPpHINT_M_VMSISH_STATUS|OPpHINT_M_VMSISH_TIME)
-
 
 
 struct op {
@@ -204,6 +202,11 @@ struct methop {
         OP* op_first;   /* optree for method name */
         SV* op_meth_sv; /* static method name */
     } op_u;
+#ifdef USE_ITHREADS
+    PADOFFSET op_class_targ; /* pad index for class name if threaded */
+#else
+    SV*       op_class_sv;   /* static class name */
+#endif
 };
 
 struct pmop {
@@ -443,6 +446,8 @@ struct loop {
                                 ? cSVOPx(v)->op_sv : PAD_SVl((v)->op_targ))
 #  define      cSVOPx_svp(v)   (cSVOPx(v)->op_sv \
                                 ? &cSVOPx(v)->op_sv : &PAD_SVl((v)->op_targ))
+#  define      cMETHOPx_class(v) (cMETHOPx(v)->op_class_targ ? \
+       PAD_SVl(cMETHOPx(v)->op_class_targ) : NULL)
 #else
 #  define      cGVOPx_gv(o)    ((GV*)cSVOPx(o)->op_sv)
 #  ifndef PERL_CORE
@@ -451,6 +456,7 @@ struct loop {
 #  endif
 #  define      cSVOPx_sv(v)    (cSVOPx(v)->op_sv)
 #  define      cSVOPx_svp(v)   (&cSVOPx(v)->op_sv)
+#  define       cMETHOPx_class(v) (cMETHOPx(v)->op_class_sv)
 #endif
 
 #  define      cMETHOPx_meth(v)        cSVOPx_sv(v)