scummvm/engines/dreamweb
Colin Snover a6659ba9d5 DREAMWEB: Use accurate memory reclamation for Ex transfers
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.
2017-11-12 23:15:05 -06:00
..
backdrop.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
configure.engine BUILD: Split configure.engines down to a single file per engine. 2013-11-24 00:45:38 +00:00
console.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
console.h DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
detection_tables.h DREAMWEB: fixed detection of Italian CD release 2017-02-07 23:59:22 +00:00
detection.cpp ALL: Remove comma before the word 'instead' 2016-11-29 20:22:19 +01:00
dreamweb.cpp DREAMWEB: Cleanup 2016-07-28 11:34:34 +03:00
dreamweb.h DREAMWEB: Use accurate memory reclamation for Ex transfers 2017-11-12 23:15:05 -06:00
keypad.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
module.mk DREAMWEB: Move all of the mouse cursor related code into a separate file 2012-04-22 16:06:25 +03:00
monitor.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
mouse.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
newplace.cpp DREAMWEB: Some British to American english 2014-02-19 21:45:22 +01:00
object.cpp DREAMWEB: Use accurate memory reclamation for Ex transfers 2017-11-12 23:15:05 -06:00
pathfind.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
people.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
POTFILES DREAMWEB: Update list of files that contain translatable strings 2014-10-04 01:01:45 +01:00
print.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
rain.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
saveload.cpp JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
sound.cpp JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
sound.h DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
sprite.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
structs.h DREAMWEB: Fix out-of-bounds read of frame animation data 2017-11-11 16:19:23 -06:00
stubs.cpp BACKENDS: Fix window sizing of games that switch between multiple resolutions 2017-10-07 12:30:29 -05:00
talk.cpp DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
titles.cpp ENGINES: Remove default1x scaler flag 2017-10-07 12:30:29 -05:00
use.cpp DREAMWEB: Slight formatting fix. 2014-02-20 14:20:57 +01:00
vgafades.cpp DREAMWEB: Some British to American english 2014-02-19 21:45:22 +01:00
vgagrafx.cpp DREAMWEB: Use accurate memory reclamation for Ex transfers 2017-11-12 23:15:05 -06:00