summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2009-03-04 16:43:58 +0000
committer Olivier Galibert <galibert@pobox.com>2009-03-04 16:43:58 +0000
commit9bcbadbd0a963aae55bbe9bb224ea272d81c1d4c (patch)
treedf884a37c66fb3895a72d31ef0b80f8b7abadd62 /src
parent23bd717b0abcbf8c43221da614408a744f03c79f (diff)
maketms: Free strings on exit.
This patch will make happier the environments that do not know that "still reachable" and "leaked" are not the same thing and that exit() is a _very_ good deallocator.
Diffstat (limited to 'src')
-rw-r--r--src/emu/cpu/tms57002/tmsmake.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/emu/cpu/tms57002/tmsmake.c b/src/emu/cpu/tms57002/tmsmake.c
index b5f474b23f6..49b80c11785 100644
--- a/src/emu/cpu/tms57002/tmsmake.c
+++ b/src/emu/cpu/tms57002/tmsmake.c
@@ -911,6 +911,23 @@ static void save(const char *fname)
fclose(f);
}
+static void clear_cat(instr *il, int count)
+{
+ int i;
+ for(i=0; i != count; i++) {
+ free(il[i].name);
+ free(il[i].dasm);
+ free(il[i].run);
+ }
+}
+
+static void clear(void)
+{
+ clear_cat(cat1, 0x40);
+ clear_cat(cat2, 0x80);
+ clear_cat(cat3, 0x80);
+}
+
int main(int argc, char **argv)
{
if(argc != 3) {
@@ -924,6 +941,7 @@ int main(int argc, char **argv)
load(argv[1]);
save(argv[2]);
+ clear();
return 0;
}