Skip to content

Commit 6b5506c

Browse files
committed
simplesquirrel: Store Squirrel thread object handlers in main ssq::VM
1 parent 8b5bc3c commit 6b5506c

File tree

3 files changed

+6
-9
lines changed

3 files changed

+6
-9
lines changed

src/squirrel/squirrel_environment.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ SquirrelEnvironment::SquirrelEnvironment(ssq::VM& vm, const std::string& name) :
3333
m_scripts(),
3434
m_scheduler(std::make_unique<SquirrelScheduler>(m_vm))
3535
{
36-
// Garbage collector has to be invoked manually!
37-
sq_collectgarbage(m_vm.getHandle());
38-
3936
// Set the root table as delegate.
4037
m_table.setDelegate(m_vm);
4138
}
@@ -44,8 +41,6 @@ SquirrelEnvironment::~SquirrelEnvironment()
4441
{
4542
m_scripts.clear();
4643
m_table.reset();
47-
48-
sq_collectgarbage(m_vm.getHandle());
4944
}
5045

5146
void

src/squirrel/supertux_api.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ 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-
if (ssq_vm && !ssq_vm->isThread()) return 0;
167+
assert(ssq_vm);
168+
if (!ssq_vm->isThread()) return 0;
168169

169170
if (!forced)
170171
{
@@ -310,10 +311,11 @@ static void load_level(const std::string& filename)
310311
*/
311312
static void import(HSQUIRRELVM vm, const std::string& filename)
312313
{
313-
ssq::VM ssq_vm(vm);
314+
ssq::VM* ssq_vm = ssq::VM::get(vm);
315+
assert(ssq_vm);
314316

315317
IFileStream in(filename);
316-
ssq_vm.run(ssq_vm.compileSource(in, filename.c_str()));
318+
ssq_vm->run(ssq_vm->compileSource(in, filename.c_str()));
317319
}
318320

319321
/**

0 commit comments

Comments
 (0)