aboutsummaryrefslogtreecommitdiff
path: root/src/libregexp/regcomp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libregexp/regcomp.c')
-rw-r--r--src/libregexp/regcomp.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/libregexp/regcomp.c b/src/libregexp/regcomp.c
index ba0175ff..b8286dc7 100644
--- a/src/libregexp/regcomp.c
+++ b/src/libregexp/regcomp.c
@@ -232,7 +232,7 @@ optimize(Reprog *pp)
int size;
Reprog *npp;
Reclass *cl;
- int diff, proglen;
+ int diff;
/*
* get rid of NOOP chains
@@ -249,13 +249,10 @@ optimize(Reprog *pp)
* necessary. Reallocate to the actual space used
* and then relocate the code.
*/
- proglen = freep - pp->firstinst;
- size = sizeof(Reprog) + proglen*sizeof(Reinst);
+ size = sizeof(Reprog) + (freep - pp->firstinst)*sizeof(Reinst);
npp = realloc(pp, size);
- if(npp==0 || npp==pp){
- pp->proglen = proglen;
+ if(npp==0 || npp==pp)
return pp;
- }
diff = (char *)npp - (char *)pp;
freep = (Reinst *)((char *)freep + diff);
for(inst=npp->firstinst; inst<freep; inst++){
@@ -276,7 +273,6 @@ optimize(Reprog *pp)
*(char**)(void*)&inst->u2.left += diff;
}
*(char**)(void*)&npp->startinst += diff;
- npp->proglen = proglen;
return npp;
}