# HG changeset patch # User lost@l-w.ca # Date 1308790662 21600 # Node ID 1a1fdfe860d0a567a3182e252762370d312ff2bc # Parent b5785eb3441fd792886f3118300550aa4658f8ab Fixed several memory leaks revealed by valgrind diff -r b5785eb3441f -r 1a1fdfe860d0 lwasm/pseudo.c --- a/lwasm/pseudo.c Wed Jun 22 18:39:32 2011 -0600 +++ b/lwasm/pseudo.c Wed Jun 22 18:57:42 2011 -0600 @@ -762,6 +762,7 @@ register_symbol(as, l, l -> sym, e, symbol_flag_none); l -> symset = 1; l -> dptr = lookup_symbol(as, l, l -> sym); + lw_expr_destroy(e); } PARSEFUNC(pseudo_parse_set) @@ -786,6 +787,7 @@ register_symbol(as, l, l -> sym, e, symbol_flag_set); l -> symset = 1; l -> dptr = lookup_symbol(as, l, l -> sym); + lw_expr_destroy(e); } PARSEFUNC(pseudo_parse_setdp) @@ -812,9 +814,11 @@ if (!lw_expr_istype(e, lw_expr_type_int)) { lwasm_register_error(as, l, "SETDP must be constant on pass 1"); + lw_expr_destroy(e); return; } l -> dpval = lw_expr_intval(e) & 0xff; + lw_expr_destroy(e); l -> dshow = l -> dpval; l -> dsize = 1; }