This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: [PATCH] s/Null(gv|hv|sv)/NULL/g
[perl5.git] / regexec.c
index a65ded7..e374871 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -285,18 +285,6 @@ S_regcppop(pTHX)
     return input;
 }
 
-STATIC char *
-S_regcp_set_to(pTHX_ I32 ss)
-{
-    dVAR;
-    const I32 tmp = PL_savestack_ix;
-
-    PL_savestack_ix = ss;
-    regcppop();
-    PL_savestack_ix = tmp;
-    return Nullch;
-}
-
 typedef struct re_cc_state
 {
     I32 ss;
@@ -417,8 +405,8 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
     char *t;
     const int do_utf8 = sv ? SvUTF8(sv) : 0;   /* if no sv we have to assume bytes */
     I32 ml_anch;
-    register char *other_last = Nullch;        /* other substr checked before this */
-    char *check_at = Nullch;           /* check substr found at this pos */
+    register char *other_last = NULL;  /* other substr checked before this */
+    char *check_at = NULL;             /* check substr found at this pos */
     const I32 multiline = prog->reganch & PMf_MULTILINE;
 #ifdef DEBUGGING
     const char * const i_strpos = strpos;
@@ -844,9 +832,9 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
            SvREFCNT_dec(do_utf8 ? prog->check_utf8 : prog->check_substr);
            if (do_utf8 ? prog->check_substr : prog->check_utf8)
                SvREFCNT_dec(do_utf8 ? prog->check_substr : prog->check_utf8);
-           prog->check_substr = prog->check_utf8 = Nullsv;     /* disable */
-           prog->float_substr = prog->float_utf8 = Nullsv;     /* clear */
-           check = Nullsv;                     /* abort */
+           prog->check_substr = prog->check_utf8 = NULL;       /* disable */
+           prog->float_substr = prog->float_utf8 = NULL;       /* clear */
+           check = NULL;                       /* abort */
            s = strpos;
            /* XXXX This is a remnant of the old implementation.  It
                    looks wasteful, since now INTUIT can use many
@@ -969,7 +957,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
   fail:
     DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log, "%sMatch rejected by optimizer%s\n",
                          PL_colors[4], PL_colors[5]));
-    return Nullch;
+    return NULL;
 }
 
 /* We know what class REx starts with.  Try to find this position... */
@@ -1193,8 +1181,7 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, const char *strend, I32
                if (s == PL_bostr)
                    tmp = '\n';
                else {
-                   U8 *r = reghop3((U8*)s, -1, (U8*)PL_bostr);
-               
+                   U8 * const r = reghop3((U8*)s, -1, (U8*)PL_bostr);
                    tmp = utf8n_to_uvchr(r, UTF8SKIP(r), 0, 0);
                }
                tmp = ((OP(c) == BOUND ?
@@ -1236,8 +1223,7 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, const char *strend, I32
                if (s == PL_bostr)
                    tmp = '\n';
                else {
-                   U8 *r = reghop3((U8*)s, -1, (U8*)PL_bostr);
-               
+                   U8 * const r = reghop3((U8*)s, -1, (U8*)PL_bostr);
                    tmp = utf8n_to_uvchr(r, UTF8SKIP(r), 0, 0);
                }
                tmp = ((OP(c) == NBOUND ?
@@ -1651,8 +1637,8 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
     const bool do_utf8 = DO_UTF8(sv);
     const I32 multiline = prog->reganch & PMf_MULTILINE;
 #ifdef DEBUGGING
-    SV *dsv0 = PERL_DEBUG_PAD_ZERO(0);
-    SV *dsv1 = PERL_DEBUG_PAD_ZERO(1);
+    SV * const dsv0 = PERL_DEBUG_PAD_ZERO(0);
+    SV * const dsv1 = PERL_DEBUG_PAD_ZERO(1);
 #endif
 
     GET_RE_DEBUG_FLAGS_DECL;
@@ -1729,7 +1715,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
            PL_reg_ganch = strbeg;
     }
 
-    if (!(flags & REXEC_CHECKED) && (prog->check_substr != Nullsv || prog->check_utf8 != Nullsv)) {
+    if (!(flags & REXEC_CHECKED) && (prog->check_substr != NULL || prog->check_utf8 != NULL)) {
        re_scream_pos_data d;
 
        d.scream_olds = &scream_olds;
@@ -1855,9 +1841,9 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
                                   "Did not find anchored character...\n")
                );
     }
-    else if (prog->anchored_substr != Nullsv
-             || prog->anchored_utf8 != Nullsv
-             || ((prog->float_substr != Nullsv || prog->float_utf8 != Nullsv)
+    else if (prog->anchored_substr != NULL
+             || prog->anchored_utf8 != NULL
+             || ((prog->float_substr != NULL || prog->float_utf8 != NULL)
                  && prog->float_max_offset < strend - s)) {
        SV *must;
        I32 back_max;
@@ -1979,7 +1965,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
     }
     else {
        dontbother = 0;
-       if (prog->float_substr != Nullsv || prog->float_utf8 != Nullsv) {
+       if (prog->float_substr != NULL || prog->float_utf8 != NULL) {
            /* Trim the end. */
            char *last;
            SV* float_real;
@@ -2006,7 +1992,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
                        last = strend - len + 1;
                    else if (!multiline)
                        last = memEQ(strend - len, little, len)
-                           ? strend - len : Nullch;
+                           ? strend - len : NULL;
                    else
                        goto find_last;
                } else {
@@ -2145,7 +2131,7 @@ S_regtry(pTHX_ regexp *prog, char *startpos)
                  && (mg = mg_find(PL_reg_sv, PERL_MAGIC_regex_global)))) {
                /* prepare for quick setting of pos */
                sv_magic(PL_reg_sv, (SV*)0,
-                       PERL_MAGIC_regex_global, Nullch, 0);
+                       PERL_MAGIC_regex_global, NULL, 0);
                mg = mg_find(PL_reg_sv, PERL_MAGIC_regex_global);
                mg->mg_len = -1;
            }
@@ -2181,7 +2167,7 @@ S_regtry(pTHX_ regexp *prog, char *startpos)
            RX_MATCH_COPIED_off(prog);
        }
        else
-           PL_reg_oldsaved = Nullch;
+           PL_reg_oldsaved = NULL;
        prog->subbeg = PL_bostr;
        prog->sublen = PL_regeol - PL_bostr; /* strend may have been modified */
     }
@@ -2329,8 +2315,7 @@ typedef union re_unwind_t {
            ENTER;                                                       \
            SAVETMPS;                                                    \
            bufflen = TRIE_INITAL_ACCEPT_BUFFLEN ;                       \
-           sv_accept_buff=NEWSV( 1234,                                  \
-             bufflen * sizeof(reg_trie_accepted) - 1 );                 \
+           sv_accept_buff=newSV(bufflen * sizeof(reg_trie_accepted) - 1 );\
            SvCUR_set( sv_accept_buff, sizeof(reg_trie_accepted) );      \
            SvPOK_on( sv_accept_buff );                                  \
            sv_2mortal( sv_accept_buff );                                \
@@ -2400,7 +2385,7 @@ S_regmatch(pTHX_ regnode *prog)
                                   function of same name */
     register I32 n;            /* no or next */
     register I32 ln = 0;       /* len or last */
-    register char *s = Nullch; /* operand or save */
+    register char *s = NULL;   /* operand or save */
     register char *locinput = PL_reginput;
     register I32 c1 = 0, c2 = 0, paren;        /* case fold search, parenth */
     int minmod = 0, sw = 0, logical = 0;
@@ -2417,9 +2402,9 @@ S_regmatch(pTHX_ regnode *prog)
 #endif
     register const bool do_utf8 = PL_reg_match_utf8;
 #ifdef DEBUGGING
-    SV *dsv0 = PERL_DEBUG_PAD_ZERO(0);
-    SV *dsv1 = PERL_DEBUG_PAD_ZERO(1);
-    SV *dsv2 = PERL_DEBUG_PAD_ZERO(2);
+    SV * const dsv0 = PERL_DEBUG_PAD_ZERO(0);
+    SV * const dsv1 = PERL_DEBUG_PAD_ZERO(1);
+    SV * const dsv2 = PERL_DEBUG_PAD_ZERO(2);
 
     SV *re_debug_flags = NULL;
 #endif
@@ -2438,7 +2423,7 @@ S_regmatch(pTHX_ regnode *prog)
     while (scan != NULL) {
 
         DEBUG_EXECUTE_r( {
-           SV *prop = sv_newmortal();
+           SV * const prop = sv_newmortal();
            const int docolor = *PL_colors[0];
            const int taill = (docolor ? 10 : 7); /* 3 chars for "> <" */
            int l = (PL_regeol - locinput) > taill ? taill : (PL_regeol - locinput);
@@ -2762,7 +2747,7 @@ S_regmatch(pTHX_ regnode *prog)
                                    best = cur;
                        }
                        DEBUG_EXECUTE_r({
-                           SV **tmp = av_fetch( trie->words, accept_buff[ best ].wordnum - 1, 0 );
+                           SV ** const tmp = av_fetch( trie->words, accept_buff[ best ].wordnum - 1, 0 );
                            PerlIO_printf( Perl_debug_log, "%*s  %strying alternation #%d <%s> at 0x%p%s\n",
                                REPORT_CODE_OFF+PL_regindent*2, "", PL_colors[4],
                                accept_buff[best].wordnum,
@@ -3204,11 +3189,11 @@ S_regmatch(pTHX_ regnode *prog)
        case EVAL:
        {
            dSP;
-           OP_4tree *oop = PL_op;
-           COP *ocurcop = PL_curcop;
+           OP_4tree * const oop = PL_op;
+           COP * const ocurcop = PL_curcop;
            PAD *old_comppad;
            SV *ret;
-           struct regexp *oreg = PL_reg_re;
+           struct regexp * const oreg = PL_reg_re;
        
            n = ARG(scan);
            PL_op = (OP_4tree*)PL_regdata->data[n];
@@ -3217,7 +3202,7 @@ S_regmatch(pTHX_ regnode *prog)
            PL_regendp[0] = PL_reg_magic->mg_len = locinput - PL_bostr;
 
            {
-               SV **before = SP;
+               SV ** const before = SP;
                CALLRUNOPS(aTHX);                       /* Scalar context. */
                SPAGAIN;
                if (SP == before)
@@ -3234,7 +3219,7 @@ S_regmatch(pTHX_ regnode *prog)
            if (logical) {
                if (logical == 2) {     /* Postponed subexpression. */
                    regexp *re;
-                   MAGIC *mg = Null(MAGIC*);
+                   MAGIC *mg = NULL;
                    re_cc_state state;
                    CHECKPOINT cp, lastcp;
                     int toggleutf;
@@ -3255,7 +3240,7 @@ S_regmatch(pTHX_ regnode *prog)
                    }
                    else {
                        STRLEN len;
-                       const char *t = SvPV_const(ret, len);
+                       const char * const t = SvPV_const(ret, len);
                        PMOP pm;
                        char * const oprecomp = PL_regprecomp;
                        const I32 osize = PL_regsize;
@@ -3494,7 +3479,7 @@ S_regmatch(pTHX_ regnode *prog)
 
                CHECKPOINT cp, lastcp;
                CURCUR* cc = PL_regcc;
-               char *lastloc = cc->lastloc; /* Detection of 0-len. */
+               char * const lastloc = cc->lastloc; /* Detection of 0-len. */
                I32 cache_offset = 0, cache_bit = 0;
                
                n = cc->cur + 1;        /* how many we know we matched */
@@ -3698,12 +3683,10 @@ S_regmatch(pTHX_ regnode *prog)
                    next = inner;       /* Avoid recursion. */
                else {
                    const I32 lastparen = *PL_reglastparen;
-                   I32 unwind1;
-                   re_unwind_branch_t *uw;
-
                    /* Put unwinding data on stack */
-                   unwind1 = SSNEWt(1,re_unwind_branch_t);
-                   uw = SSPTRt(unwind1,re_unwind_branch_t);
+                   const I32 unwind1 = SSNEWt(1,re_unwind_branch_t);
+                   re_unwind_branch_t * const uw = SSPTRt(unwind1,re_unwind_branch_t);
+
                    uw->prev = unwind;
                    unwind = unwind1;
                    uw->type = ((c1 == BRANCH)
@@ -4152,14 +4135,22 @@ S_regmatch(pTHX_ regnode *prog)
                re_cc_state *cur_call_cc = PL_reg_call_cc;
                CURCUR *cctmp = PL_regcc;
                regexp *re = PL_reg_re;
-               CHECKPOINT cp, lastcp;
-               
-               cp = regcppush(0);      /* Save *all* the positions. */
+               CHECKPOINT lastcp;
+               I32 tmp;
+
+               /* Save *all* the positions. */
+               const CHECKPOINT cp = regcppush(0);
                REGCP_SET(lastcp);
-               regcp_set_to(PL_reg_call_cc->ss); /* Restore parens of
-                                                   the caller. */
-               PL_reginput = locinput; /* Make position available to
-                                          the callcc. */
+
+               /* Restore parens of the caller. */
+               tmp = PL_savestack_ix;
+               PL_savestack_ix = PL_reg_call_cc->ss;
+               regcppop();
+               PL_savestack_ix = tmp;
+
+               /* Make position available to the callcc. */
+               PL_reginput = locinput;
+
                cache_re(PL_reg_call_cc->re);
                PL_regcc = PL_reg_call_cc->cc;
                PL_reg_call_cc = PL_reg_call_cc->prev;
@@ -4298,13 +4289,13 @@ no:
 no_final:
 do_no:
     if (unwind) {
-       re_unwind_t *uw = SSPTRt(unwind,re_unwind_t);
+       re_unwind_t * const uw = SSPTRt(unwind,re_unwind_t);
 
        switch (uw->type) {
        case RE_UNWIND_BRANCH:
        case RE_UNWIND_BRANCHJ:
        {
-           re_unwind_branch_t *uwb = &(uw->branch);
+           re_unwind_branch_t * const uwb = &(uw->branch);
            const I32 lastparen = uwb->lastparen;
        
            REGCP_UNWIND(uwb->lastcp);
@@ -4586,7 +4577,7 @@ S_regrepeat(pTHX_ const regnode *p, I32 max)
 
     DEBUG_r({
                SV *re_debug_flags = NULL;
-               SV *prop = sv_newmortal();
+               SV * const prop = sv_newmortal();
                 GET_RE_DEBUG_FLAGS;
                 DEBUG_EXECUTE_r({
                regprop(prop, p);
@@ -4609,7 +4600,7 @@ STATIC I32
 S_regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp)
 {
     dVAR;
-    register char *scan = Nullch;
+    register char *scan = NULL;
     register char *start;
     register char *loceol = PL_regeol;
     I32 l = 0;