summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2010-07-31 14:13:40 -0600
committerRafael Garcia-Suarez <rgs@consttype.org>2010-08-11 10:23:35 +0200
commit3214c85f0cf79132ec9bd3848fbc74923594dc83 (patch)
tree719175833b18a83a83110972f2c73a9fb8438fb8
parentf4a4cecbe54b6ef3f12e504d1840e450819f026b (diff)
downloadperl-3214c85f0cf79132ec9bd3848fbc74923594dc83.tar.gz
op_reg_common.h: Refactor variable for safety
This patch changes the variable that tells how many common bits there are to instead be +1 that value, so bits won't get reused. A later commit will renumber the bits in op.h and regexp.h, but for now things are left as-is there, which means the base variables in those two files must subtract one to compensate for the +1
-rw-r--r--op.h2
-rw-r--r--op_reg_common.h4
-rw-r--r--regexp.h2
3 files changed, 5 insertions, 3 deletions
diff --git a/op.h b/op.h
index f402d761cc..d00f74ff28 100644
--- a/op.h
+++ b/op.h
@@ -360,7 +360,7 @@ struct pmop {
#define PM_SETRE(o,r) ((o)->op_pmregexp = (r))
#endif
-#define PMf_BASE_SHIFT _RXf_PMf_SHIFT
+#define PMf_BASE_SHIFT ((_RXf_PMf_SHIFT_NEXT)-1)
/* taint $1 etc. if target tainted */
#define PMf_RETAINT (1<<(PMf_BASE_SHIFT+1))
diff --git a/op_reg_common.h b/op_reg_common.h
index b0fd273b3d..de100dc780 100644
--- a/op_reg_common.h
+++ b/op_reg_common.h
@@ -24,4 +24,6 @@
#define RXf_PMf_LOCALE (1 << 5)
#define PMf_LOCALE (1 << 5)
-#define _RXf_PMf_SHIFT 5 /* Begins with '_' so won't be exported by B */
+/* Next available bit after the above. Name begins with '_' so won't be
+ * exported by B */
+#define _RXf_PMf_SHIFT_NEXT 6
diff --git a/regexp.h b/regexp.h
index ec897881e3..5246c1231e 100644
--- a/regexp.h
+++ b/regexp.h
@@ -291,7 +291,7 @@ and check for NULL.
*
*/
-#define RXf_BASE_SHIFT _RXf_PMf_SHIFT
+#define RXf_BASE_SHIFT ((_RXf_PMf_SHIFT_NEXT)-1)
/* Anchor and GPOS related stuff */
#define RXf_ANCH_BOL (1<<(RXf_BASE_SHIFT+3))