]> granicus.if.org Git - yasm/commitdiff
re2c: Fix -b generation in certain cases.
authorPeter Johnson <peter@tortall.net>
Sat, 15 Dec 2007 00:00:55 +0000 (00:00 -0000)
committerPeter Johnson <peter@tortall.net>
Sat, 15 Dec 2007 00:00:55 +0000 (00:00 -0000)
Fix from re2c repo r417 (sourceforge bug 1479044).

svn path=/trunk/yasm/; revision=2025

tools/re2c/code.c

index 1c72517adbb6145011423b0845e4f816e027c566..a3341cb4580c752457817826bee2ef559b41278a 100644 (file)
@@ -146,11 +146,11 @@ void BitMap_gen(FILE *o, unsigned int lb, unsigned int ub){
        unsigned int n = ub - lb;
        unsigned int i;
        unsigned char *bm = malloc(sizeof(unsigned char)*n);
-       memset(bm, 0, n);
        fputs("\tstatic unsigned char yybm[] = {", o);
        for(i = 0; b; i += n){
            unsigned char m;
            unsigned int j;
+           memset(bm, 0, n);
            for(m = 0x80; b && m; b = b->next, m >>= 1){
                b->i = i; b->m = m;
                doGen(b->go, b->on, bm-lb, m);
@@ -161,6 +161,7 @@ void BitMap_gen(FILE *o, unsigned int lb, unsigned int ub){
            }
        }
        fputs("\n\t};\n", o); oline+=2;
+        free(bm);
     }
 }