From 781e178df3c71441adf96c15c92edad6eab2b59d Mon Sep 17 00:00:00 2001 From: Bluddy Date: Thu, 28 Apr 2011 17:06:03 +0300 Subject: TOON: Reduced fragmentation by using a fixed value for pathfinding allocation Toon makes some rather big allocations for pathfinding, alternating between 3MB and 6MB). In small devices, this creates really bad fragmentation which can cause crashes. I set the size at a fixed 6MB. --- engines/toon/path.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'engines/toon/path.cpp') diff --git a/engines/toon/path.cpp b/engines/toon/path.cpp index 677876fd8e..26355863f6 100644 --- a/engines/toon/path.cpp +++ b/engines/toon/path.cpp @@ -409,7 +409,11 @@ void PathFinding::init(Picture *mask) { _height = mask->getHeight(); _currentMask = mask; _heap->unload(); - _heap->init(_width * _height); + // In order to reduce memory fragmentation on small devices, we use the maximum + // possible size here which is TOON_BACKBUFFER_WIDTH. Even though this is + // 1280 as opposed to the possible 640, it actually helps memory allocation on + // those devices. + _heap->init(TOON_BACKBUFFER_WIDTH * _height); // should really be _width delete[] _gridTemp; _gridTemp = new int32[_width*_height]; } -- cgit v1.2.3