diff options
author | Karl Williamson <khw@cpan.org> | 2020-04-03 10:30:38 -0600 |
---|---|---|
committer | Karl Williamson <khw@cpan.org> | 2020-10-16 07:01:41 -0600 |
commit | 95f5a9192aec499cfcb88b39a66919cc67ed6c7d (patch) | |
tree | 03b5a74eabfbac05573260e05ced8514473cffd4 /regcomp.c | |
parent | 938090acbdbd9475a044786f75bbbcf4e64d3b49 (diff) | |
download | perl-95f5a9192aec499cfcb88b39a66919cc67ed6c7d.tar.gz |
regcomp.c,regexec.c: Simplify
This commit uses the new macros from the previous commit to simply come
code.
Diffstat (limited to 'regcomp.c')
-rw-r--r-- | regcomp.c | 25 |
1 files changed, 5 insertions, 20 deletions
@@ -5303,12 +5303,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, continue; } } - else if ( OP(scan) == EXACT - || OP(scan) == LEXACT - || OP(scan) == EXACT_REQ8 - || OP(scan) == LEXACT_REQ8 - || OP(scan) == EXACTL) - { + else if (PL_regkind[OP(scan)] == EXACT && ! isEXACTFish(OP(scan))) { SSize_t bytelen = STR_LEN(scan), charlen; UV uc; assert(bytelen); @@ -5447,11 +5442,8 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, case PLUS: if (flags & (SCF_DO_SUBSTR | SCF_DO_STCLASS)) { next = NEXTOPER(scan); - if ( OP(next) == EXACT - || OP(next) == LEXACT - || OP(next) == EXACT_REQ8 - || OP(next) == LEXACT_REQ8 - || OP(next) == EXACTL + if ( ( PL_regkind[OP(next)] == EXACT + && ! isEXACTFish(OP(next))) || (flags & SCF_DO_STCLASS)) { mincount = 1; @@ -8123,12 +8115,7 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, DEBUG_PEEP("first:", first, 0, 0); /* Ignore EXACT as we deal with it later. */ if (PL_regkind[OP(first)] == EXACT) { - if ( OP(first) == EXACT - || OP(first) == LEXACT - || OP(first) == EXACT_REQ8 - || OP(first) == LEXACT_REQ8 - || OP(first) == EXACTL) - { + if (! isEXACTFish(OP(first))) { NOOP; /* Empty, get anchored substr later. */ } else @@ -8472,9 +8459,7 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, && nop == END) RExC_rx->extflags |= RXf_WHITE; else if ( RExC_rx->extflags & RXf_SPLIT - && ( fop == EXACT || fop == LEXACT - || fop == EXACT_REQ8 || fop == LEXACT_REQ8 - || fop == EXACTL) + && (PL_regkind[fop] == EXACT && ! isEXACTFish(fop)) && STR_LEN(first) == 1 && *(STRING(first)) == ' ' && nop == END ) |