diff options
Diffstat (limited to 'newlib/libc')
-rw-r--r-- | newlib/libc/posix/regcomp.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/newlib/libc/posix/regcomp.c b/newlib/libc/posix/regcomp.c index e71bc005c..c78974675 100644 --- a/newlib/libc/posix/regcomp.c +++ b/newlib/libc/posix/regcomp.c @@ -2001,10 +2001,10 @@ struct re_guts *g; } g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int)); - if (g->matchjump == NULL) { /* Not a fatal error */ - free(pmatches); - return; - } + if (g->matchjump == NULL) { /* Not a fatal error */ + free(pmatches); + return; + } /* Set maximum possible jump for each character in the pattern */ for (mindex = 0; mindex < g->mlen; mindex++) @@ -2037,16 +2037,16 @@ struct re_guts *g; g->matchjump[mindex] = MIN(g->matchjump[mindex], g->mlen + suffix - mindex); - ssuffix = pmatches[suffix]; - while (suffix < g->mlen) { - while (suffix <= ssuffix && suffix < g->mlen) { - g->matchjump[suffix] = MIN(g->matchjump[suffix], + ssuffix = pmatches[suffix]; + while (suffix < g->mlen) { + while (suffix <= ssuffix && suffix < g->mlen) { + g->matchjump[suffix] = MIN(g->matchjump[suffix], g->mlen + ssuffix - suffix); - suffix++; - } + suffix++; + } if (suffix < g->mlen) - ssuffix = pmatches[ssuffix]; - } + ssuffix = pmatches[ssuffix]; + } free(pmatches); } |