Skip to content

Commit c82219c

Browse files
authored
Don't assert ssq_vm if the VM exits (#3340)
* Don't assert ssq_vm on debug builds if the VM exits * Spare cppcheck
1 parent 41c99ec commit c82219c

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/squirrel/supertux_api.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,14 @@ static bool check_cutscene()
164164
static SQInteger wait(HSQUIRRELVM vm, float seconds, bool forced = false)
165165
{
166166
ssq::VM* ssq_vm = ssq::VM::get(vm);
167-
assert(ssq_vm);
168-
if (ssq_vm && !ssq_vm->isThread()) return 0;
167+
if (!ssq_vm || !ssq_vm->isThread()) return 0;
169168

170169
if (!forced)
171170
{
172171
auto session = GameSession::current();
173172
if (session && session->get_current_level().m_skip_cutscene)
174173
{
175-
if (ssq_vm && ssq_vm->getForeignPtr())
174+
if (ssq_vm->getForeignPtr())
176175
{
177176
auto squirrelenv = ssq_vm->getForeignPtr<SquirrelEnvironment>();
178177
// Wait anyways, to prevent scripts like `while (true) {wait(0.1); ...}`.
@@ -183,7 +182,7 @@ static SQInteger wait(HSQUIRRELVM vm, float seconds, bool forced = false)
183182
}
184183
if (session && session->get_current_level().m_is_in_cutscene)
185184
{
186-
if (ssq_vm && ssq_vm->getForeignPtr())
185+
if (ssq_vm->getForeignPtr())
187186
{
188187
auto squirrelenv = ssq_vm->getForeignPtr<SquirrelEnvironment>();
189188
// Wait anyways, to prevent scripts like `while (true) {wait(0.1); ...}` from freezing the game.
@@ -193,7 +192,7 @@ static SQInteger wait(HSQUIRRELVM vm, float seconds, bool forced = false)
193192
return squirrelvm->skippable_wait_for_seconds(vm, seconds);
194193
}
195194
}
196-
if (ssq_vm && ssq_vm->getForeignPtr())
195+
if (ssq_vm->getForeignPtr())
197196
{
198197
auto squirrelenv = ssq_vm->getForeignPtr<SquirrelEnvironment>();
199198
return squirrelenv->wait_for_seconds(vm, seconds);
@@ -312,7 +311,7 @@ static void load_level(const std::string& filename)
312311
static void import(HSQUIRRELVM vm, const std::string& filename)
313312
{
314313
ssq::VM* ssq_vm = ssq::VM::get(vm);
315-
assert(ssq_vm);
314+
if (!ssq_vm) return;
316315

317316
IFileStream in(filename);
318317
ssq_vm->run(ssq_vm->compileSource(in, filename.c_str()));

0 commit comments

Comments
 (0)