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 7dc118e..6c62942 100644 (file)
--- a/op.h
+++ b/op.h
@@ -156,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 */
@@ -227,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 */
@@ -290,7 +290,6 @@ struct loop {
     BASEOP
     OP *       op_first;
     OP *       op_last;
-    U32                op_children;
     OP *       op_redoop;
     OP *       op_nextop;
     OP *       op_lastop;
@@ -414,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