https://github.com/buffer/libemu/commit/9256d8dc460b15a1c05d19b2fd277939602145e1.patch
From 9256d8dc460b15a1c05d19b2fd277939602145e1 Mon Sep 17 00:00:00 2001
From: Angelo Dell'Aera <buffer@olografix.org>
Date: Fri, 10 Jun 2016 09:16:46 +0200
Subject: [PATCH] Fixed bug in emu_memory_free
---
src/emu_memory.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/emu_memory.c b/src/emu_memory.c
index c2f2642..45ee83f 100644
--- a/src/emu_memory.c
+++ b/src/emu_memory.c
@@ -171,16 +171,26 @@ void emu_memory_free(struct emu_memory *m)
int i, j;
emu_breakpoint_free(m->breakpoint);
-
+
for( i = 0; i < (1 << (32 - PAGESET_BITS - PAGE_BITS)); i++ )
{
if( m->pagetable[i] != NULL )
{
for( j = 0; j < PAGESET_SIZE; j++ )
- if( m->pagetable[i][j] != NULL )
+ if( m->pagetable[i][j] != NULL ) {
free(m->pagetable[i][j]);
-
+ m->pagetable[i][j] = NULL;
+ }
+ //free(m->pagetable[i]);
+ }
+ }
+
+ for( i = 0; i < (1 << (32 - PAGESET_BITS - PAGE_BITS)); i++ )
+ {
+ if( m->pagetable[i] != NULL )
+ {
free(m->pagetable[i]);
+ m->pagetable[i] = NULL;
}
}