mirror of
https://github.com/kanjitalk755/macemu.git
synced 2025-02-04 14:33:47 +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:
parent
0e6bdfdce5
commit
1e8598eefa
@ -301,9 +301,13 @@ int main(int argc, char **argv)
|
||||
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);
|
||||
#else
|
||||
RAMBaseHost = new uint8[RAMSize];
|
||||
ROMBaseHost = new uint8[0x100000];
|
||||
RAMBaseHost = (uint8 *)malloc(RAMSize);
|
||||
ROMBaseHost = (uint8 *)malloc(0x100000);
|
||||
#endif
|
||||
if (RAMBaseHost == NULL || ROMBaseHost == NULL) {
|
||||
ErrorAlert(GetString(STR_NO_MEM_ERR));
|
||||
QuitEmulator();
|
||||
}
|
||||
#if REAL_ADDRESSING && !EMULATED_68K
|
||||
RAMBaseMac = (uint32)RAMBaseHost;
|
||||
ROMBaseMac = (uint32)ROMBaseHost;
|
||||
@ -561,15 +565,23 @@ void QuitEmulator(void)
|
||||
ExitAll();
|
||||
|
||||
// Delete ROM area
|
||||
delete[] ROMBaseHost;
|
||||
if (ROMBaseHost) {
|
||||
free(ROMBaseHost);
|
||||
ROMBaseHost = NULL;
|
||||
}
|
||||
|
||||
// Delete RAM area
|
||||
delete[] RAMBaseHost;
|
||||
if (RAMBaseHost) {
|
||||
free(RAMBaseHost);
|
||||
RAMBaseHost = NULL;
|
||||
}
|
||||
|
||||
#if !EMULATED_68K
|
||||
// Delete scratch memory area
|
||||
if (ScratchMem)
|
||||
if (ScratchMem) {
|
||||
free((void *)(ScratchMem - SCRATCH_MEM_SIZE/2));
|
||||
ScratchMem = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if REAL_ADDRESSING
|
||||
|
Loading…
x
Reference in New Issue
Block a user