mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-10 11:51:52 +00:00
a6659ba9d5
When the Ex memory regions are close to full, it is possible for the game to fail to purge objects and then crash with an OOM error even if it isn't actually out of memory. This patch calculates the amount of free memory truly needed when allocating to Ex memory to allow exactly the entire frame & text regions to be used, instead previously where a hard-coded amount of free space to maintain was used, which guaranteed that the entire memory region could not actually be used by the game. This change may be masking some underlying memory leak, or it may just be that near the end of the game the game naturally comes close to reaching the maximum memory region size. For the moment, I am assuming the latter. This commit also adds some assertion checks to the memory transfer functions to make sure the regions don't quietly overflow in other cases, since pickupConts performs transfers in a manner that doesn't ensure enough free memory exists for them to be successful. Fixes Trac#6820. |
||
---|---|---|
.. | ||
backdrop.cpp | ||
configure.engine | ||
console.cpp | ||
console.h | ||
detection_tables.h | ||
detection.cpp | ||
dreamweb.cpp | ||
dreamweb.h | ||
keypad.cpp | ||
module.mk | ||
monitor.cpp | ||
mouse.cpp | ||
newplace.cpp | ||
object.cpp | ||
pathfind.cpp | ||
people.cpp | ||
POTFILES | ||
print.cpp | ||
rain.cpp | ||
saveload.cpp | ||
sound.cpp | ||
sound.h | ||
sprite.cpp | ||
structs.h | ||
stubs.cpp | ||
talk.cpp | ||
titles.cpp | ||
use.cpp | ||
vgafades.cpp | ||
vgagrafx.cpp |