fix split count mistake
This commit is contained in:
12
pike.c
12
pike.c
@@ -310,14 +310,16 @@ static int _compilecode(const char **re_loc, rcode *prog, int sizecode)
|
|||||||
PC += size;
|
PC += size;
|
||||||
}
|
}
|
||||||
if (code) {
|
if (code) {
|
||||||
mincnt = 0;
|
inf = 0;
|
||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
switch (code[term+i]) {
|
switch (code[term+i]) {
|
||||||
|
case CLASS:
|
||||||
|
i += code[term+i+2] * 2 + 2;
|
||||||
|
icnt++;
|
||||||
|
break;
|
||||||
case SPLIT:
|
case SPLIT:
|
||||||
case RSPLIT:
|
case RSPLIT:
|
||||||
mincnt++;
|
inf++;
|
||||||
case CLASS:
|
|
||||||
i += code[term+i+2] * 2 + 1;
|
|
||||||
case JMP:
|
case JMP:
|
||||||
case SAVE:
|
case SAVE:
|
||||||
case CHAR:
|
case CHAR:
|
||||||
@@ -325,7 +327,7 @@ static int _compilecode(const char **re_loc, rcode *prog, int sizecode)
|
|||||||
case ANY:
|
case ANY:
|
||||||
icnt++;
|
icnt++;
|
||||||
}
|
}
|
||||||
prog->splits += mincnt * icnt;
|
prog->splits += inf * icnt;
|
||||||
prog->len += (maxcnt-1) * icnt;
|
prog->len += (maxcnt-1) * icnt;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user