MCPcopy Create free account
hub / github.com/Tencent/UnLua / LoadFromCustomLoader

Method LoadFromCustomLoader

Plugins/UnLua/Source/UnLua/Private/LuaEnv.cpp:512–550  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

510 }
511
512 int FLuaEnv::LoadFromCustomLoader(lua_State* L)
513 {
514 auto& Env = *(FLuaEnv*)lua_touserdata(L, lua_upvalueindex(1));
515 if (FUnLuaDelegates::CustomLoadLuaFile.IsBound())
516 {
517 // legacy support
518 const FString FileName(UTF8_TO_TCHAR(lua_tostring(L, 1)));
519 TArray<uint8> Data;
520 FString ChunkName(TEXT("chunk"));
521 if (FUnLuaDelegates::CustomLoadLuaFile.Execute(Env, FileName, Data, ChunkName))
522 {
523 if (Env.LoadString(Data, ChunkName))
524 return 1;
525
526 return luaL_error(L, "file loading from custom loader error");
527 }
528 return 0;
529 }
530
531 if (Env.CustomLoaders.Num() == 0)
532 return 0;
533
534 const FString FileName(UTF8_TO_TCHAR(lua_tostring(L, 1)));
535
536 TArray<uint8> Data;
537 FString ChunkName(TEXT("chunk"));
538 for (auto& Loader : Env.CustomLoaders)
539 {
540 if (!Loader.Execute(Env, FileName, Data, ChunkName))
541 continue;
542
543 if (Env.LoadString(Data, ChunkName))
544 break;
545
546 return luaL_error(L, "file loading from custom loader error");
547 }
548
549 return 1;
550 }
551
552 int FLuaEnv::LoadFromFileSystem(lua_State* L)
553 {

Callers

nothing calls this directly

Calls 5

lua_touserdataFunction · 0.85
luaL_errorFunction · 0.85
ExecuteMethod · 0.80
IsBoundMethod · 0.45
NumMethod · 0.45

Tested by

no test coverage detected