mirror of
https://github.com/kanjitalk755/macemu.git
synced 2025-08-16 02:27:31 +00:00
- Mac ROM and RAM are allocated with malloc() instead of "new" (because
-fomit-frame-pointer breaks exceptions), and an error message is displayed if the allocation fails
This commit is contained in:
@@ -301,9 +301,13 @@ int main(int argc, char **argv)
|
|||||||
for (int i=0; i<0x80000; i+=4096)
|
for (int i=0; i<0x80000; i+=4096)
|
||||||
mmap(good_address_map + i + 0x00400000, 4096, PROT_READ, MAP_FIXED | MAP_PRIVATE, good_address_fd, 0);
|
mmap(good_address_map + i + 0x00400000, 4096, PROT_READ, MAP_FIXED | MAP_PRIVATE, good_address_fd, 0);
|
||||||
#else
|
#else
|
||||||
RAMBaseHost = new uint8[RAMSize];
|
RAMBaseHost = (uint8 *)malloc(RAMSize);
|
||||||
ROMBaseHost = new uint8[0x100000];
|
ROMBaseHost = (uint8 *)malloc(0x100000);
|
||||||
#endif
|
#endif
|
||||||
|
if (RAMBaseHost == NULL || ROMBaseHost == NULL) {
|
||||||
|
ErrorAlert(GetString(STR_NO_MEM_ERR));
|
||||||
|
QuitEmulator();
|
||||||
|
}
|
||||||
#if REAL_ADDRESSING && !EMULATED_68K
|
#if REAL_ADDRESSING && !EMULATED_68K
|
||||||
RAMBaseMac = (uint32)RAMBaseHost;
|
RAMBaseMac = (uint32)RAMBaseHost;
|
||||||
ROMBaseMac = (uint32)ROMBaseHost;
|
ROMBaseMac = (uint32)ROMBaseHost;
|
||||||
@@ -561,15 +565,23 @@ void QuitEmulator(void)
|
|||||||
ExitAll();
|
ExitAll();
|
||||||
|
|
||||||
// Delete ROM area
|
// Delete ROM area
|
||||||
delete[] ROMBaseHost;
|
if (ROMBaseHost) {
|
||||||
|
free(ROMBaseHost);
|
||||||
|
ROMBaseHost = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// Delete RAM area
|
// Delete RAM area
|
||||||
delete[] RAMBaseHost;
|
if (RAMBaseHost) {
|
||||||
|
free(RAMBaseHost);
|
||||||
|
RAMBaseHost = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#if !EMULATED_68K
|
#if !EMULATED_68K
|
||||||
// Delete scratch memory area
|
// Delete scratch memory area
|
||||||
if (ScratchMem)
|
if (ScratchMem) {
|
||||||
free((void *)(ScratchMem - SCRATCH_MEM_SIZE/2));
|
free((void *)(ScratchMem - SCRATCH_MEM_SIZE/2));
|
||||||
|
ScratchMem = NULL;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if REAL_ADDRESSING
|
#if REAL_ADDRESSING
|
||||||
|
Reference in New Issue
Block a user