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

Function ScriptStruct_Copy

Plugins/UnLua/Source/UnLua/Private/LuaCore.cpp:1732–1756  ·  view source on GitHub ↗

* Generic closure to copy a UScriptStruct */

Source from the content-addressed store, hash-verified

1730 * Generic closure to copy a UScriptStruct
1731 */
1732int32 ScriptStruct_Copy(lua_State *L)
1733{
1734 FClassDesc *ClassDesc = ScriptStruct_CheckParam(L);
1735 if (!ClassDesc)
1736 {
1737 return 0;
1738 }
1739
1740 UScriptStruct *ScriptStruct = ClassDesc->AsScriptStruct();
1741
1742 void *Src = GetCppInstanceFast(L, 1);
1743 void *Userdata = nullptr;
1744 if (lua_gettop(L) > 1)
1745 {
1746 Userdata = GetCppInstanceFast(L, 2);
1747 lua_pushvalue(L, 2);
1748 }
1749 else
1750 {
1751 Userdata = NewUserdataWithPadding(L, ClassDesc->GetSize(), TCHAR_TO_UTF8(*ClassDesc->GetName()), ClassDesc->GetUserdataPadding());
1752 ScriptStruct->InitializeStruct(Userdata);
1753 }
1754 ScriptStruct->CopyScriptStruct(Userdata, Src);
1755 return 1;
1756}
1757
1758/**
1759 * Generic closure to compare two UScriptStructs

Callers

nothing calls this directly

Calls 9

ScriptStruct_CheckParamFunction · 0.85
GetCppInstanceFastFunction · 0.85
lua_gettopFunction · 0.85
lua_pushvalueFunction · 0.85
NewUserdataWithPaddingFunction · 0.85
AsScriptStructMethod · 0.80
GetUserdataPaddingMethod · 0.80
GetSizeMethod · 0.45
GetNameMethod · 0.45

Tested by

no test coverage detected