From 0efefad3d8ff61355002b828c13a531e15f55978 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sat, 19 Jan 2019 22:16:59 +0200 Subject: Continue fixing memory leaks related to namespaces. --- main.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 3324b698..1eb6d6a9 100644 --- a/main.c +++ b/main.c @@ -471,10 +471,7 @@ main(int argc, char **argv) if (do_intl) exit(EXIT_SUCCESS); - if (current_namespace != awk_namespace) { - efree((char *) current_namespace); - current_namespace = awk_namespace; - } + set_current_namespace(awk_namespace); install_builtins(); @@ -520,9 +517,7 @@ main(int argc, char **argv) interpret(code_block); if (do_pretty_print) { - if (current_namespace != awk_namespace) - efree((char *) current_namespace); - current_namespace = awk_namespace; + set_current_namespace(awk_namespace); dump_prog(code_block); dump_funcs(); } @@ -1806,3 +1801,14 @@ platform_name() return "posix"; #endif } + +/* set_current_namespace --- set current_namespace and handle memory management */ + +void +set_current_namespace(const char *new_namespace) +{ + if (current_namespace != awk_namespace) + efree((void *) current_namespace); + + current_namespace = new_namespace; +} -- cgit v1.2.3