diff options
author | Karl Williamson <public@khwilliamson.com> | 2011-12-25 14:20:42 -0700 |
---|---|---|
committer | Karl Williamson <public@khwilliamson.com> | 2012-01-19 11:58:19 -0700 |
commit | f758bddff3d477c79b77132210e9d4249f1d83c9 (patch) | |
tree | 896c57d82bcd5ad8709a0759693cedc0fb965892 /proto.h | |
parent | 287722f3d3da256273a55d7ef88b415ec6acbc00 (diff) | |
download | perl-f758bddff3d477c79b77132210e9d4249f1d83c9.tar.gz |
regcomp.c: Refactor join_exact() to eliminate extra passes
The strings in every EXACTFish node are examined for certain problematic
sequences and code points. Prior to this patch, this was done in
several passes, but this refactors the routine to do it in a single
pass.
Diffstat (limited to 'proto.h')
-rw-r--r-- | proto.h | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -6371,12 +6371,13 @@ PERL_STATIC_INLINE void S_invlist_trim(pTHX_ SV* const invlist) #define PERL_ARGS_ASSERT_INVLIST_TRIM \ assert(invlist) -STATIC U32 S_join_exact(pTHX_ struct RExC_state_t *pRExC_state, regnode *scan, IV *min_change, U32 flags, regnode *val, U32 depth) +STATIC U32 S_join_exact(pTHX_ struct RExC_state_t *pRExC_state, regnode *scan, IV *min_change, bool *has_exactf_sharp_s, U32 flags, regnode *val, U32 depth) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_3); + __attribute__nonnull__(pTHX_3) + __attribute__nonnull__(pTHX_4); #define PERL_ARGS_ASSERT_JOIN_EXACT \ - assert(pRExC_state); assert(scan); assert(min_change) + assert(pRExC_state); assert(scan); assert(min_change); assert(has_exactf_sharp_s) STATIC I32 S_make_trie(pTHX_ struct RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth) __attribute__nonnull__(pTHX_1) |