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;