From c07a3b5311cc95cc59a434df07110fa9b2be4643 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sat, 19 Jan 2019 18:08:45 +0000 Subject: [PATCH] Free currently allocated memory blocks on CPU reset. Prevents memory leaks when resetting. --- src/codegen_backend.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/codegen_backend.c b/src/codegen_backend.c index db786b2..8dca3b2 100644 --- a/src/codegen_backend.c +++ b/src/codegen_backend.c @@ -94,7 +94,15 @@ void codegen_close() void codegen_reset() { int c; - + + for (c = 1; c < BLOCK_SIZE; c++) + { + codeblock_t *block = &codeblock[c]; + + if (block->pc != BLOCK_PC_INVALID) + delete_block(block); + } + memset(codeblock, 0, BLOCK_SIZE * sizeof(codeblock_t)); memset(codeblock_hash, 0, HASH_SIZE * sizeof(uint16_t)); mem_reset_page_blocks();