MCPcopy Create free account
hub / github.com/defold/defold / CreateAndPushInstance

Function CreateAndPushInstance

engine/script/src/test/test_script_lua.cpp:690–710  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

688
689
690static int CreateAndPushInstance(lua_State* L)
691{
692 DM_LUA_STACK_CHECK(L, 0);
693
694 const char* type_name = "TestType";
695 dmScript::RegisterUserType(L, type_name, Test_methods, Test_meta);
696
697 // Create an instance
698 TestDummy* dummy = (TestDummy*)lua_newuserdata(L, sizeof(TestDummy));
699 dummy->m_Dummy = 1;
700 luaL_getmetatable(L, type_name);
701 lua_setmetatable(L, -2);
702 int instanceref = dmScript::Ref(L, LUA_REGISTRYINDEX);
703 lua_newtable(L);
704 dummy->m_ContextTableReference = dmScript::Ref(L, LUA_REGISTRYINDEX);
705 dummy->m_UniqueScriptId = dmScript::GenerateUniqueScriptId();
706
707 lua_rawgeti(L, LUA_REGISTRYINDEX, instanceref);
708 dmScript::SetInstance(L);
709 return instanceref;
710}
711
712TEST_F(ScriptTestLua, LuaCallbackHelpers)
713{

Callers 1

TEST_FFunction · 0.85

Calls 7

RegisterUserTypeFunction · 0.85
lua_newuserdataFunction · 0.85
lua_setmetatableFunction · 0.85
RefFunction · 0.85
GenerateUniqueScriptIdFunction · 0.85
lua_rawgetiFunction · 0.85
SetInstanceFunction · 0.85

Tested by

no test coverage detected