notaz.gp2x.de
/
pcsx_rearmed.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
74ebc05
)
psxmem: handle map failures so that it can be retried
author
notaz
<notasas@gmail.com>
Tue, 4 Jun 2013 21:58:22 +0000
(
00:58
+0300)
committer
notaz
<notasas@gmail.com>
Tue, 4 Jun 2013 21:58:22 +0000
(
00:58
+0300)
libpcsxcore/psxmem.c
patch
|
blob
|
blame
|
history
diff --git
a/libpcsxcore/psxmem.c
b/libpcsxcore/psxmem.c
index
4da0cf4
..
2ca5dd5
100644
(file)
--- a/
libpcsxcore/psxmem.c
+++ b/
libpcsxcore/psxmem.c
@@
-95,7
+95,8
@@
void psxUnmap(void *ptr, size_t size, enum psxMapTag tag)
return;
}
return;
}
- munmap(ptr, size);
+ if (ptr)
+ munmap(ptr, size);
}
s8 *psxM = NULL; // Kernel & User Memory (2 Meg)
}
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!"));
if (psxMemRLUT == NULL || psxMemWLUT == NULL ||
psxR == NULL || psxP == NULL || psxH != (void *)0x1f800000) {
SysMessage(_("Error allocating memory!"));
+ psxMemShutdown();
return -1;
}
return -1;
}
@@
-208,12
+210,12
@@
void psxMemReset() {
}
void psxMemShutdown() {
}
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;
}
static int writeok = 1;