summaryrefslogtreecommitdiff
path: root/embed.fnc
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2011-12-08 15:43:41 +0000
committerDavid Mitchell <davem@iabyn.com>2012-06-13 13:32:46 +0100
commit514a91f155137f90b0b252807e2c009f04c97938 (patch)
tree43a22ccf6aa6cfa23c12f97827eb16ee3d1c210c /embed.fnc
parent37acfcba9f5180cec9aa03bf3457caab7114230c (diff)
downloadperl-514a91f155137f90b0b252807e2c009f04c97938.tar.gz
re_op_compile(): split flags into two arguments
There are two sets of regex-related flags; the RXf_* which end up in the extflags field of a REGEXP, and the PMf_*, which are in the op_pmflags field of a PMOP. Since I added the PMf_HAS_CV and PMf_IS_QR flags, I've been conflating these two meanings in the single flags arg to re_op_compile(), which meant that some bits were being misinterpreted. The only test that was failing was peek.t, but it may have quietly broken other things that simply weren't tested for (for example PMf_HAS_CV and RXf_SPLIT share the same value, so something with split qr/(?{...})/ might get messed up). So, split this arg into two; one for the RXf* flags, and one for the PMf_* flags. The public regexp API continues to have only a single flags arg, which should only be accepting RXf_* flags.
Diffstat (limited to 'embed.fnc')
-rw-r--r--embed.fnc2
1 files changed, 1 insertions, 1 deletions
diff --git a/embed.fnc b/embed.fnc
index f0032819c5..fc93e49698 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -1063,7 +1063,7 @@ p |REGEXP*|re_op_compile |NULLOK SV ** const patternp \
|NULLOK const regexp_engine* eng \
|NULLOK REGEXP *VOL old_re \
|NULLOK int *is_bare_re \
- |U32 rx_flags
+ |U32 rx_flags|U32 pm_flags
Ap |REGEXP*|re_compile |NN SV * const pattern|U32 orig_rx_flags
Ap |char* |re_intuit_start|NN REGEXP * const rx|NULLOK SV* sv|NN char* strpos \
|NN char* strend|const U32 flags \