Mercurial > hg-old > index.cgi
diff src/macro.c @ 68:cef25b0088e6
Fixed some problems detected by valgrind and testing
author | lost |
---|---|
date | Mon, 05 Jan 2009 06:14:41 +0000 |
parents | d5fe306f1ab1 |
children | b7550988b97c |
line wrap: on
line diff
--- a/src/macro.c Mon Jan 05 05:40:33 2009 +0000 +++ b/src/macro.c Mon Jan 05 06:14:41 2009 +0000 @@ -110,7 +110,7 @@ if (as -> passnum == 2) return 1; - as -> macros -> lines = lwasm_realloc(as -> macros -> lines, sizeof(char *) * as -> macros -> numlines + 1); + as -> macros -> lines = lwasm_realloc(as -> macros -> lines, sizeof(char *) * (as -> macros -> numlines + 1)); as -> macros -> lines[as -> macros -> numlines] = lwasm_strdup(optr); as -> macros -> numlines += 1; return 1; @@ -187,7 +187,7 @@ } // have arg here - args = lwasm_realloc(args, nargs + 1); + args = lwasm_realloc(args, sizeof(char *) * (nargs + 1)); args[nargs] = lwasm_alloc(p2 - *p + 1); args[nargs][p2 - *p] = '\0'; memcpy(args[nargs], *p, p2 - *p); @@ -205,6 +205,8 @@ *p3 = '\0'; nargs++; + if (**p == ',') + (*p)++; } } @@ -225,7 +227,6 @@ for (lc = 0; lc < m -> numlines; lc++) { nl = lwasm_alloc(sizeof(lwasm_line_t)); - nl -> text = lwasm_strdup(linebuff); nl -> lineno = lc + 1; nl -> filename = m -> name; nl -> next = NULL;