Skip to content

Commit de3dc70

Browse files
authored
Fix #2917: Fix Get/Set vehicle model wheel size memory leak (#2934)
1 parent b10b2bf commit de3dc70

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

Client/game_sa/CModelInfoSA.cpp

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,11 +1020,14 @@ CVector CModelInfoSA::GetVehicleDummyDefaultPosition(eVehicleDummies eDummy)
10201020
}
10211021
}
10221022

1023-
if (!IsLoaded())
1024-
Request(BLOCKING, "GetVehicleDummyDefaultPosition");
1023+
ModelAddRef(BLOCKING, "GetVehicleDummyDefaultPosition");
1024+
1025+
auto modelInfo = reinterpret_cast<CVehicleModelInfoSAInterface*>(GetInterface());
1026+
CVector vec = modelInfo->pVisualInfo->vecDummies[eDummy];
1027+
1028+
RemoveRef();
10251029

1026-
auto modelInfo = reinterpret_cast<CVehicleModelInfoSAInterface*>(m_pInterface);
1027-
return modelInfo->pVisualInfo->vecDummies[eDummy];
1030+
return vec;
10281031
}
10291032

10301033
CVector CModelInfoSA::GetVehicleDummyPosition(eVehicleDummies eDummy)
@@ -1108,11 +1111,7 @@ float CModelInfoSA::GetVehicleWheelSize(eResizableVehicleWheelGroup eWheelGroup)
11081111
if (!IsVehicle())
11091112
return 0.0f;
11101113

1111-
// Request model load right now if not loaded yet
1112-
if (!IsLoaded())
1113-
Request(BLOCKING, "GetVehicleWheelSize");
1114-
1115-
auto pVehicleModel = reinterpret_cast<CVehicleModelInfoSAInterface*>(m_pInterface);
1114+
auto pVehicleModel = reinterpret_cast<CVehicleModelInfoSAInterface*>(GetInterface());
11161115
switch (eWheelGroup)
11171116
{
11181117
case eResizableVehicleWheelGroup::FRONT_AXLE:
@@ -1129,11 +1128,7 @@ void CModelInfoSA::SetVehicleWheelSize(eResizableVehicleWheelGroup eWheelGroup,
11291128
if (!IsVehicle())
11301129
return;
11311130

1132-
// Request model load right now if not loaded yet
1133-
if (!IsLoaded())
1134-
Request(BLOCKING, "SetVehicleWheelSize");
1135-
1136-
auto pVehicleModel = reinterpret_cast<CVehicleModelInfoSAInterface*>(m_pInterface);
1131+
auto pVehicleModel = reinterpret_cast<CVehicleModelInfoSAInterface*>(GetInterface());
11371132

11381133
// Store default wheel sizes in map
11391134
if (!MapFind(ms_VehicleModelDefaultWheelSizes, m_dwModelID))

0 commit comments

Comments
 (0)