From 75f1d2e2596035f603558dced17e64238032ce2c Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 2 Feb 2016 01:21:28 +0100 Subject: SWORD25: Use more appropriate function for growing the stack The call to lua_growstack in unpersistThread would unconditionally at least double the size of the stack. This caused memory usage to grow exponentially (literally) with the number of serialized threads. Bugs #6977, #6999. --- engines/sword25/util/lua_unpersist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/sword25/util') diff --git a/engines/sword25/util/lua_unpersist.cpp b/engines/sword25/util/lua_unpersist.cpp index ef0ef31041..678ddb52db 100644 --- a/engines/sword25/util/lua_unpersist.cpp +++ b/engines/sword25/util/lua_unpersist.cpp @@ -425,7 +425,7 @@ void unpersistThread(UnSerializationInfo *info, int index) { // First, deserialize the object stack uint32 stackSize = info->readStream->readUint32LE(); - lua_growstack(info->luaState, (int)stackSize); + lua_checkstack(info->luaState, (int)stackSize); // Make sure that the first stack element (a nil, representing // the imaginary top-level C function) is written to the very, -- cgit v1.2.3