Fix vscript squirrel threads

This commit is contained in:
samisalreadytaken 2024-01-09 17:24:44 +03:00
parent 7525068fc0
commit af7c9365b0

View File

@ -1159,7 +1159,7 @@ void PushVariant(HSQUIRRELVM vm, const ScriptVariant_t& value)
break; break;
case FIELD_VECTOR: case FIELD_VECTOR:
{ {
SquirrelVM* pSquirrelVM = (SquirrelVM*)sq_getforeignptr(vm); SquirrelVM* pSquirrelVM = (SquirrelVM*)sq_getsharedforeignptr(vm);
Assert(pSquirrelVM); Assert(pSquirrelVM);
sq_pushobject(vm, pSquirrelVM->vectorClass_); sq_pushobject(vm, pSquirrelVM->vectorClass_);
sq_createinstance(vm, -1); sq_createinstance(vm, -1);
@ -1422,7 +1422,7 @@ SQInteger function_stub(HSQUIRRELVM vm)
ScriptVariant_t retval; ScriptVariant_t retval;
SquirrelVM* pSquirrelVM = (SquirrelVM*)sq_getforeignptr(vm); SquirrelVM* pSquirrelVM = (SquirrelVM*)sq_getsharedforeignptr(vm);
Assert(pSquirrelVM); Assert(pSquirrelVM);
sq_resetobject(&pSquirrelVM->lastError_); sq_resetobject(&pSquirrelVM->lastError_);
@ -1475,7 +1475,7 @@ SQInteger constructor_stub(HSQUIRRELVM vm)
return sqstd_throwerrorf(vm, "Unable to construct instances of %s", pClassDesc->m_pszScriptName); return sqstd_throwerrorf(vm, "Unable to construct instances of %s", pClassDesc->m_pszScriptName);
} }
SquirrelVM* pSquirrelVM = (SquirrelVM*)sq_getforeignptr(vm); SquirrelVM* pSquirrelVM = (SquirrelVM*)sq_getsharedforeignptr(vm);
Assert(pSquirrelVM); Assert(pSquirrelVM);
sq_resetobject(&pSquirrelVM->lastError_); sq_resetobject(&pSquirrelVM->lastError_);
@ -2008,7 +2008,7 @@ bool SquirrelVM::Init()
if (vm_ == nullptr) if (vm_ == nullptr)
return false; return false;
sq_setforeignptr(vm_, this); sq_setsharedforeignptr(vm_, this);
sq_resetobject(&lastError_); sq_resetobject(&lastError_);
sq_setprintfunc(vm_, printfunc, errorfunc); sq_setprintfunc(vm_, printfunc, errorfunc);