With Damian's approval synchronize damian's modules'
[p5sagit/p5-mst-13.2.git] / op.h
diff --git a/op.h b/op.h
index b480ea9..6c62942 100644 (file)
--- a/op.h
+++ b/op.h
@@ -139,9 +139,6 @@ Deprecated.  Use C<GIMME_V> instead.
 /* Private for OP_REPEAT */
 #define OPpREPEAT_DOLIST       64      /* List replication. */
 
-/* Private for OP_LEAVELOOP */
-#define OPpLOOP_CONTINUE       64      /* a continue block is present */
-
 /* Private for OP_RV2?V, OP_?ELEM */
 #define OPpDEREF               (32|64) /* Want ref to something: */
 #define OPpDEREF_AV            32      /*   Want ref to AV. */
@@ -159,7 +156,9 @@ Deprecated.  Use C<GIMME_V> instead.
   /* OP_?ELEM only */
 #define OPpLVAL_DEFER          16      /* Defer creation of array/hash elem */
   /* OP_RV2?V, OP_GVSV only */
-#define OPpOUR_INTRO           16      /* Defer creation of array/hash elem */
+#define OPpOUR_INTRO           16      /* Variable was in an our() */
+  /* OP_RV2[AH]V, OP_PAD[AH]V, OP_[AH]ELEM */
+#define OPpMAYBE_LVSUB         8       /* We might be an lvalue to return */
   /* for OP_RV2?V, lower bits carry hints (currently only HINT_STRICT_REFS) */
 
 /* Private for OPs with TARGLEX */
@@ -230,14 +229,12 @@ struct listop {
     BASEOP
     OP *       op_first;
     OP *       op_last;
-    U32                op_children;
 };
 
 struct pmop {
     BASEOP
     OP *       op_first;
     OP *       op_last;
-    U32                op_children;
     OP *       op_pmreplroot;
     OP *       op_pmreplstart;
     PMOP *     op_pmnext;              /* list of all scanpats */
@@ -293,7 +290,6 @@ struct loop {
     BASEOP
     OP *       op_first;
     OP *       op_last;
-    U32                op_children;
     OP *       op_redoop;
     OP *       op_nextop;
     OP *       op_lastop;
@@ -417,19 +413,17 @@ struct loop {
 #  define OP_REFCNT_LOCK               MUTEX_LOCK(&PL_op_mutex)
 #  define OP_REFCNT_UNLOCK             MUTEX_UNLOCK(&PL_op_mutex)
 #  define OP_REFCNT_TERM               MUTEX_DESTROY(&PL_op_mutex)
-#  define OpREFCNT_set(o,n)            ((o)->op_targ = (n))
-#  define OpREFCNT_inc(o)              ((o) ? (++(o)->op_targ, (o)) : Nullop)
-#  define OpREFCNT_dec(o)              (--(o)->op_targ)
 #else
 #  define OP_REFCNT_INIT               NOOP
 #  define OP_REFCNT_LOCK               NOOP
 #  define OP_REFCNT_UNLOCK             NOOP
 #  define OP_REFCNT_TERM               NOOP
-#  define OpREFCNT_set(o,n)            NOOP
-#  define OpREFCNT_inc(o)              (o)
-#  define OpREFCNT_dec(o)              0
 #endif
 
+#define OpREFCNT_set(o,n)              ((o)->op_targ = (n))
+#define OpREFCNT_inc(o)                        ((o) ? (++(o)->op_targ, (o)) : Nullop)
+#define OpREFCNT_dec(o)                        (--(o)->op_targ)
+
 /* flags used by Perl_load_module() */
 #define PERL_LOADMOD_DENY              0x1
 #define PERL_LOADMOD_NOIMPORT          0x2