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

Function ResLuaRecreate

engine/gameobject/src/gameobject/res_lua.cpp:157–177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

155 }
156
157 static dmResource::Result ResLuaRecreate(const dmResource::ResourceRecreateParams* params)
158 {
159 dmLuaDDF::LuaModule* lua_module = 0;
160 dmDDF::Result e = dmDDF::LoadMessage<dmLuaDDF::LuaModule>(params->m_Buffer, params->m_BufferSize, &lua_module);
161 if ( e != dmDDF::RESULT_OK )
162 return dmResource::RESULT_FORMAT_ERROR;
163
164 PatchLuaBytecode(&lua_module->m_Source);
165
166 ModuleContext* module_context = (ModuleContext*) params->m_Context;
167 uint32_t context_count = module_context->m_ScriptContexts.Size();
168 for (uint32_t i = 0; i < context_count; ++i) {
169 dmScript::HContext script_context = module_context->m_ScriptContexts[i];
170 dmScript::ReloadModule(script_context, &lua_module->m_Source, ResourceDescriptorGetNameHash(params->m_Resource));
171 }
172 LuaScript* lua_script = (LuaScript*) ResourceDescriptorGetResource(params->m_Resource);
173 ResourceDescriptorSetResourceSize(params->m_Resource, sizeof(LuaScript) + params->m_BufferSize - lua_script->m_LuaModule->m_Source.m_Script.m_Count);
174 dmDDF::FreeMessage(lua_script->m_LuaModule);
175 lua_script->m_LuaModule = lua_module;
176 return dmResource::RESULT_OK;
177 }
178
179 static ResourceResult RegisterResourceTypeLua(HResourceTypeContext ctx, HResourceType type)
180 {

Callers

nothing calls this directly

Calls 7

PatchLuaBytecodeFunction · 0.85
ReloadModuleFunction · 0.85
FreeMessageFunction · 0.85
SizeMethod · 0.45

Tested by

no test coverage detected