perl 5.003_01: [changes beteween cumulative patches and tarball release]
[p5sagit/p5-mst-13.2.git] / op.h
diff --git a/op.h b/op.h
index f3ef541..7c210bc 100644 (file)
--- a/op.h
+++ b/op.h
@@ -23,9 +23,9 @@
  *                     which may or may not check number of children).
  */
 
-typedef U16 PADOFFSET;
+typedef U32 PADOFFSET;
 
-#ifdef DEBUGGING
+#ifdef DEBUGGING_OPS
 #define OPCODE opcode
 #else
 #define OPCODE U16
@@ -41,7 +41,7 @@ typedef U16 PADOFFSET;
     U8         op_flags;               \
     U8         op_private;
 
-#define GIMME (op->op_flags & OPf_KNOW ? op->op_flags & OPf_LIST : cxstack[cxstack_ix].blk_gimme & G_ARRAY)
+#define GIMME (op->op_flags & OPf_KNOW ? op->op_flags & OPf_LIST : dowantarray())
 
 /* Public flags */
 #define OPf_LIST       1       /* Do operator in list context. */
@@ -63,6 +63,7 @@ typedef U16 PADOFFSET;
                                /*  On flipflop, we saw ... instead of .. */
                                /*  On UNOPs, saw bare parens, e.g. eof(). */
                                /*  On OP_ENTERSUB || OP_NULL, saw a "do". */
+                               /*  On OP_(ENTER|LEAVE)EVAL, don't clear $@ */
 
 /* Private for lvalues */
 #define OPpLVAL_INTRO  128     /* Lvalue must be localized */
@@ -83,7 +84,8 @@ typedef U16 PADOFFSET;
 
 /* Private for OP_ENTERSUB, OP_RV2?V, OP_?ELEM */
   /* (lower bits carry hints) */
-#define OPpDEREF_DB            16      /* Debug subroutine. */
+#define OPpENTERSUB_AMPER      8       /* Used & form to call. */
+#define OPpENTERSUB_DB         16      /* Debug subroutine. */
 #define OPpDEREF_AV            32      /* Want ref to AV. */
 #define OPpDEREF_HV            64      /* Want ref to HV. */
 
@@ -147,6 +149,7 @@ struct pmop {
     REGEXP *   op_pmregexp;            /* compiled expression */
     SV *       op_pmshort;             /* for a fast bypass of execute() */
     U16                op_pmflags;
+    U16                op_pmpermflags;
     char       op_pmslen;
 };
 
@@ -182,12 +185,6 @@ struct pvop {
     char *     op_pv;
 };
 
-struct cvop {
-    BASEOP
-    CV *       op_cv;
-    OP *       op_cont;
-};
-
 struct loop {
     BASEOP
     OP *       op_first;
@@ -207,7 +204,6 @@ struct loop {
 #define cSVOP ((SVOP*)op)
 #define cGVOP ((GVOP*)op)
 #define cPVOP ((PVOP*)op)
-#define cCVOP ((CVOP*)op)
 #define cCOP ((COP*)op)
 #define cLOOP ((LOOP*)op)
 
@@ -220,7 +216,6 @@ struct loop {
 #define kSVOP ((SVOP*)kid)
 #define kGVOP ((GVOP*)kid)
 #define kPVOP ((PVOP*)kid)
-#define kCVOP ((CVOP*)kid)
 #define kCOP ((COP*)kid)
 #define kLOOP ((LOOP*)kid)