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)

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212

1313
void CLuaFireDefs::LoadFunctions()
1414
{
15-
std::map<const char*, lua_CFunction> functions{
15+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1616
{"createFire", CreateFire},
1717
{"extinguishFire", ExtinguishFire},
1818
};
1919

2020
// Add functions
21-
for (const auto& pair : functions)
22-
{
23-
CLuaCFunctions::AddFunction(pair.first, pair.second);
24-
}
21+
for (const auto& [name, func] : functions)
22+
CLuaCFunctions::AddFunction(name, func);
2523
}
2624

2725
int CLuaFireDefs::CreateFire(lua_State* luaVM)

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ static const SFixedArray<const char*, MAX_CHATBOX_LAYOUT_CVARS> g_chatboxLayoutC
3636

3737
void CLuaGUIDefs::LoadFunctions()
3838
{
39-
std::map<const char*, lua_CFunction> functions{
39+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
4040
{"guiGetInputEnabled", GUIGetInputEnabled},
4141
{"guiSetInputEnabled", GUISetInputEnabled},
4242
{"guiGetInputMode", GUIGetInputMode},
@@ -195,10 +195,8 @@ void CLuaGUIDefs::LoadFunctions()
195195
};
196196

197197
// Add functions
198-
for (const auto& pair : functions)
199-
{
200-
CLuaCFunctions::AddFunction(pair.first, pair.second);
201-
}
198+
for (const auto& [name, func] : functions)
199+
CLuaCFunctions::AddFunction(name, func);
202200
}
203201

204202
void CLuaGUIDefs::AddClass(lua_State* luaVM)

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

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

1414
void CLuaMarkerDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
{"createMarker", CreateMarker},
1818

1919
{"getMarkerCount", GetMarkerCount},
@@ -31,10 +31,8 @@ void CLuaMarkerDefs::LoadFunctions()
3131
};
3232

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

4038
void CLuaMarkerDefs::AddClass(lua_State* luaVM)

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

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

1414
void CLuaObjectDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
// Object create/destroy funcs
1818
{"createObject", CreateObject},
1919

@@ -38,10 +38,8 @@ void CLuaObjectDefs::LoadFunctions()
3838
};
3939

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

4745
void CLuaObjectDefs::AddClass(lua_State* luaVM)

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

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

1616
void CLuaPedDefs::LoadFunctions()
1717
{
18-
std::map<const char*, lua_CFunction> functions{
18+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1919
{"createPed", CreatePed},
2020
{"detonateSatchels", DetonateSatchels},
2121
{"killPed", KillPed},
@@ -92,10 +92,8 @@ void CLuaPedDefs::LoadFunctions()
9292
};
9393

9494
// Add functions
95-
for (const auto& pair : functions)
96-
{
97-
CLuaCFunctions::AddFunction(pair.first, pair.second);
98-
}
95+
for (const auto& [name, func] : functions)
96+
CLuaCFunctions::AddFunction(name, func);
9997
}
10098

10199
void CLuaPedDefs::AddClass(lua_State* luaVM)

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

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

1414
void CLuaPickupDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
{"createPickup", CreatePickup},
1818

1919
{"getPickupType", GetPickupType},
@@ -25,10 +25,8 @@ void CLuaPickupDefs::LoadFunctions()
2525
};
2626

2727
// Add functions
28-
for (const auto& pair : functions)
29-
{
30-
CLuaCFunctions::AddFunction(pair.first, pair.second);
31-
}
28+
for (const auto& [name, func] : functions)
29+
CLuaCFunctions::AddFunction(name, func);
3230
}
3331

3432
void CLuaPickupDefs::AddClass(lua_State* luaVM)

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

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

1414
void CLuaPlayerDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
// Player get funcs
1818
{"getLocalPlayer", GetLocalPlayer},
1919
{"getPlayerName", GetPlayerName},
@@ -50,10 +50,8 @@ void CLuaPlayerDefs::LoadFunctions()
5050
};
5151

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

5957
void CLuaPlayerDefs::AddClass(lua_State* luaVM)

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

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

1414
void CLuaPointLightDefs::LoadFunctions()
1515
{
16-
std::map<const char*, lua_CFunction> functions{
16+
constexpr static const std::pair<const char*, lua_CFunction> functions[]{
1717
{"createLight", CreateLight},
1818
{"getLightType", GetLightType},
1919
{"getLightRadius", GetLightRadius},
@@ -25,10 +25,8 @@ void CLuaPointLightDefs::LoadFunctions()
2525
};
2626

2727
// Add functions
28-
for (const auto& pair : functions)
29-
{
30-
CLuaCFunctions::AddFunction(pair.first, pair.second);
31-
}
28+
for (const auto& [name, func] : functions)
29+
CLuaCFunctions::AddFunction(name, func);
3230
}
3331

3432
void CLuaPointLightDefs::AddClass(lua_State* luaVM)

0 commit comments

Comments
 (0)