rebus / rpms / libemu

Forked from rpms/libemu 3 years ago
Clone
Blob Blame History Raw
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;
 		}
 	}