diff options
author | twinaphex | 2013-06-07 21:22:31 +0200 |
---|---|---|
committer | twinaphex | 2013-06-07 21:22:31 +0200 |
commit | c0adc1d662ed933b8d3369746fc7cf25736b1219 (patch) | |
tree | 919084d5dd0190d423f02721598d5f0961811e33 /libpcsxcore/psxmem.c | |
parent | 9b56b10a186877d32c47be051250ffb307404e78 (diff) | |
parent | d848b60a3da875fca0b1f2ddf8a4ae9d487d685b (diff) | |
download | pcsx_rearmed-c0adc1d662ed933b8d3369746fc7cf25736b1219.tar.gz pcsx_rearmed-c0adc1d662ed933b8d3369746fc7cf25736b1219.tar.bz2 pcsx_rearmed-c0adc1d662ed933b8d3369746fc7cf25736b1219.zip |
Merge git://github.com/notaz/pcsx_rearmed
Diffstat (limited to 'libpcsxcore/psxmem.c')
-rw-r--r-- | libpcsxcore/psxmem.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libpcsxcore/psxmem.c b/libpcsxcore/psxmem.c index 4da0cf4..2ca5dd5 100644 --- a/libpcsxcore/psxmem.c +++ b/libpcsxcore/psxmem.c @@ -95,7 +95,8 @@ void psxUnmap(void *ptr, size_t size, enum psxMapTag tag) return; } - munmap(ptr, size); + if (ptr) + munmap(ptr, size); } s8 *psxM = NULL; // Kernel & User Memory (2 Meg) @@ -155,6 +156,7 @@ int psxMemInit() { if (psxMemRLUT == NULL || psxMemWLUT == NULL || psxR == NULL || psxP == NULL || psxH != (void *)0x1f800000) { SysMessage(_("Error allocating memory!")); + psxMemShutdown(); return -1; } @@ -208,12 +210,12 @@ void psxMemReset() { } void psxMemShutdown() { - psxUnmap(psxM, 0x00210000, MAP_TAG_RAM); - psxUnmap(psxH, 0x10000, MAP_TAG_OTHER); - psxUnmap(psxR, 0x80000, MAP_TAG_OTHER); + psxUnmap(psxM, 0x00210000, MAP_TAG_RAM); psxM = NULL; + psxUnmap(psxH, 0x10000, MAP_TAG_OTHER); psxH = NULL; + psxUnmap(psxR, 0x80000, MAP_TAG_OTHER); psxR = NULL; - free(psxMemRLUT); - free(psxMemWLUT); + free(psxMemRLUT); psxMemRLUT = NULL; + free(psxMemWLUT); psxMemWLUT = NULL; } static int writeok = 1; |