From b1a5a5f6c0735752a5397e9166558c9c398083a4 Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Tue, 23 Feb 2021 22:53:28 +0800 Subject: [PATCH] clear memory footprint when codegen complete --- main.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/main.cpp b/main.cpp index db16a2e..cba161a 100644 --- a/main.cpp +++ b/main.cpp @@ -37,6 +37,16 @@ void die(std::string stage,std::string filename) return; } +void clear() +{ + // this will clear the data in lexer/parser/import modules + // to reduce memory footprint + lexer.get_token_list().clear(); + parse.get_root().clear(); + import.get_root().clear(); + return; +} + void lex_func() { lexer.openfile(inputfile); @@ -47,6 +57,7 @@ void lex_func() return; } lexer.print_token(); + clear(); return; } @@ -67,6 +78,7 @@ void ast_print() return; } parse.get_root().print_ast(0); + clear(); return; } @@ -93,6 +105,7 @@ void show_bytecode() return; } code_generator.main_progress(import.get_root()); + clear(); code_generator.print_byte_code(); return; } @@ -120,6 +133,7 @@ void execute() return; } code_generator.main_progress(import.get_root()); + clear(); vm.run( code_generator.get_string_table(), code_generator.get_number_table(),