(svn r15284) -Fix [FS#2582] (r15045): Parameters were popped from the squirrel stack twice.

pull/155/head
Yexo 16 years ago
parent 6891d8f2e8
commit 283a265d8a

@ -606,6 +606,7 @@ void AIInstance::Load(int version)
return;
}
HSQUIRRELVM vm = this->engine->GetVM();
SQInteger old_top = sq_gettop(vm);
SlObject(NULL, _ai_byte);
/* Check if there was anything saved at all. */
@ -624,12 +625,17 @@ void AIInstance::Load(int version)
if (this->engine->MethodExists(*this->instance, "Load")) {
sq_call(vm, 3, SQFalse, SQFalse);
/* Pop 1) the object instance, 2) the (null) result. */
sq_pop(vm, 2);
} else {
AILog::Warning("Loading failed: there was data for the AI to load, but the AI does not have a Load() function.");
/* Pop 1) the object instance, 2) the function name, 3) the instance again, 4) the version */
sq_pop(vm, 4);
}
/* Pop 1) the object instance, 2) the function name, 3) the instance again, 4) the (null) result. */
sq_pop(vm, 4);
assert(sq_gettop(vm) == old_top);
AIObject::SetAllowDoCommand(true);
return;

Loading…
Cancel
Save