summaryrefslogtreecommitdiff
path: root/frontends
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2001-10-29 04:52:44 +0000
committerPeter Johnson <peter@tortall.net>2001-10-29 04:52:44 +0000
commit4d95de5161399e432a423a5f5c38345ceb24431f (patch)
treefe10d9deb7d182db2d8c5ea36d843d94abc426b6 /frontends
parentdc1c3c70f5271ae7679ba37ae49f5857ade67443 (diff)
downloadyasm-4d95de5161399e432a423a5f5c38345ceb24431f.tar.gz
Plug memory leaks, and enhance finding later ones with *_delete functions.
Fix a *major* bug in expr_level_op(). svn path=/trunk/yasm/; revision=301
Diffstat (limited to 'frontends')
-rw-r--r--frontends/yasm/yasm.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/frontends/yasm/yasm.c b/frontends/yasm/yasm.c
index b42d331b..45e76049 100644
--- a/frontends/yasm/yasm.c
+++ b/frontends/yasm/yasm.c
@@ -132,8 +132,13 @@ main(int argc, char *argv[])
sections = nasm_parser.do_parse(&nasm_parser, &dbg_objfmt, in);
- if (OutputAllErrorWarning() > 0)
+ if (OutputAllErrorWarning() > 0) {
+ sections_delete(sections);
+ symrec_delete_all();
+ filename_delete_all();
+ BitVector_Shutdown();
return EXIT_FAILURE;
+ }
sections_print(sections);
printf("\n***Symbol Table***\n");
@@ -145,7 +150,10 @@ main(int argc, char *argv[])
printf("Post-parser-finalization:\n");
sections_print(sections);
+ sections_delete(sections);
+ symrec_delete_all();
filename_delete_all();
+ BitVector_Shutdown();
return EXIT_SUCCESS;
}