Skip to content

Commit 36efacb

Browse files
authored
Refactor LuaDef::LoadFunctions() to use array instead of map for inlining (#1453)
1 parent 7399bf6 commit 36efacb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+171
-285
lines changed

Client/mods/deathmatch/logic/lua/CLuaManager.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ CLuaMain* CLuaManager::GetVirtualMachine(lua_State* luaVM)
151151

152152
void CLuaManager::LoadCFunctions()
153153
{
154-
std::map<const char*, lua_CFunction> functions{
154+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
155155
// ** BACKWARDS COMPATIBILITY FUNCS. SHOULD BE REMOVED BEFORE FINAL RELEASE! **
156156
{"getPlayerRotation", CLuaPedDefs::GetPedRotation},
157157
{"canPlayerBeKnockedOffBike", CLuaPedDefs::CanPedBeKnockedOffBike},
@@ -405,10 +405,8 @@ void CLuaManager::LoadCFunctions()
405405
};
406406

407407
// Add all functions
408-
for (const auto& pair : functions)
409-
{
410-
CLuaCFunctions::AddFunction(pair.first, pair.second);
411-
}
408+
for (const auto& [name, func] : functions)
409+
CLuaCFunctions::AddFunction(name, func);
412410

413411
// Luadef definitions
414412
CLuaAudioDefs::LoadFunctions();

Client/mods/deathmatch/logic/luadefs/CLuaAudioDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
void CLuaAudioDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
// Audio funcs
1818
{"playSoundFrontEnd", PlaySoundFrontEnd},
1919
{"setAmbientSoundEnabled", SetAmbientSoundEnabled},
@@ -65,10 +65,8 @@ void CLuaAudioDefs::LoadFunctions()
6565
};
6666

6767
// Add functions
68-
for (const auto& pair : functions)
69-
{
70-
CLuaCFunctions::AddFunction(pair.first, pair.second);
71-
}
68+
for (const auto& [name, func] : functions)
69+
CLuaCFunctions::AddFunction(name, func);
7270
}
7371

7472
void CLuaAudioDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaBlipDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
void CLuaBlipDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
{"createBlip", CreateBlip},
1818
{"createBlipAttachedTo", CreateBlipAttachedTo},
1919
{"getBlipIcon", GetBlipIcon},
@@ -30,10 +30,8 @@ void CLuaBlipDefs::LoadFunctions()
3030
};
3131

3232
// Add functions
33-
for (const auto& pair : functions)
34-
{
35-
CLuaCFunctions::AddFunction(pair.first, pair.second);
36-
}
33+
for (const auto& [name, func] : functions)
34+
CLuaCFunctions::AddFunction(name, func);
3735
}
3836

3937
void CLuaBlipDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaBrowserDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
void CLuaBrowserDefs::LoadFunctions()
1515
{
1616
// Define browser functions
17-
std::map<const char*, lua_CFunction> functions{
17+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1818
{"createBrowser", CreateBrowser},
1919
{"requestBrowserDomains", RequestBrowserDomains},
2020
{"loadBrowserURL", LoadBrowserURL},
@@ -49,10 +49,8 @@ void CLuaBrowserDefs::LoadFunctions()
4949
};
5050

5151
// Add browser functions
52-
for (const auto& pair : functions)
53-
{
54-
CLuaCFunctions::AddFunction(pair.first, pair.second);
55-
}
52+
for (const auto& [name, func] : functions)
53+
CLuaCFunctions::AddFunction(name, func);
5654
}
5755

5856
void CLuaBrowserDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaCameraDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
void CLuaCameraDefs::LoadFunctions()
1616
{
17-
std::map<const char*, lua_CFunction> functions{
17+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1818
// Cam get funcs
1919
{"getCamera", GetCamera},
2020
{"getCameraViewMode", GetCameraViewMode},
@@ -39,10 +39,8 @@ void CLuaCameraDefs::LoadFunctions()
3939
};
4040

4141
// Add functions
42-
for (const auto& pair : functions)
43-
{
44-
CLuaCFunctions::AddFunction(pair.first, pair.second);
45-
}
42+
for (const auto& [name, func] : functions)
43+
CLuaCFunctions::AddFunction(name, func);
4644
}
4745

4846
void CLuaCameraDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaColShapeDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
void CLuaColShapeDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
{"createColCircle", CreateColCircle},
1818
{"createColCuboid", CreateColCuboid},
1919
{"createColSphere", CreateColSphere},
@@ -36,10 +36,8 @@ void CLuaColShapeDefs::LoadFunctions()
3636
};
3737

3838
// Add functions
39-
for (const auto& pair : functions)
40-
{
41-
CLuaCFunctions::AddFunction(pair.first, pair.second);
42-
}
39+
for (const auto& [name, func] : functions)
40+
CLuaCFunctions::AddFunction(name, func);
4341
}
4442

4543
void CLuaColShapeDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaDrawingDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ extern bool g_bAllowAspectRatioAdjustment;
1515

1616
void CLuaDrawingDefs::LoadFunctions()
1717
{
18-
std::map<const char*, lua_CFunction> functions{
18+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1919
{"dxDrawLine", DxDrawLine},
2020
{"dxDrawMaterialLine3D", DxDrawMaterialLine3D},
2121
{"dxDrawMaterialSectionLine3D", DxDrawMaterialSectionLine3D},
@@ -61,10 +61,8 @@ void CLuaDrawingDefs::LoadFunctions()
6161
};
6262

6363
// Add functions
64-
for (const auto& pair : functions)
65-
{
66-
CLuaCFunctions::AddFunction(pair.first, pair.second);
67-
}
64+
for (const auto& [name, func] : functions)
65+
CLuaCFunctions::AddFunction(name, func);
6866
}
6967

7068
void CLuaDrawingDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaEffectDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
void CLuaEffectDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
{"fxAddBlood", fxAddBlood},
1818
{"fxAddWood", fxAddWood},
1919
{"fxAddSparks", fxAddSparks},
@@ -36,10 +36,8 @@ void CLuaEffectDefs::LoadFunctions()
3636
};
3737

3838
// Add functions
39-
for (const auto& pair : functions)
40-
{
41-
CLuaCFunctions::AddFunction(pair.first, pair.second);
42-
}
39+
for (const auto& [name, func] : functions)
40+
CLuaCFunctions::AddFunction(name, func);
4341
}
4442

4543
void CLuaEffectDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaElementDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ using std::list;
1616

1717
void CLuaElementDefs::LoadFunctions()
1818
{
19-
std::map<const char*, lua_CFunction> functions{
19+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
2020
// Element get funcs
2121
{"getRootElement", GetRootElement},
2222
{"isElement", IsElement},
@@ -98,10 +98,8 @@ void CLuaElementDefs::LoadFunctions()
9898
};
9999

100100
// Add functions
101-
for (const auto& pair : functions)
102-
{
103-
CLuaCFunctions::AddFunction(pair.first, pair.second);
104-
}
101+
for (const auto& [name, func] : functions)
102+
CLuaCFunctions::AddFunction(name, func);
105103
}
106104

107105
void CLuaElementDefs::AddClass(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
void CLuaEngineDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
{"engineFreeModel", EngineFreeModel},
1818
{"engineLoadTXD", EngineLoadTXD},
1919
{"engineLoadCOL", EngineLoadCOL},
@@ -59,10 +59,8 @@ void CLuaEngineDefs::LoadFunctions()
5959
};
6060

6161
// Add functions
62-
for (const auto& pair : functions)
63-
{
64-
CLuaCFunctions::AddFunction(pair.first, pair.second);
65-
}
62+
for (const auto& [name, func] : functions)
63+
CLuaCFunctions::AddFunction(name, func);
6664
}
6765

6866
void CLuaEngineDefs::AddClass(lua_State* luaVM)

0 commit comments

Comments
 (0)