Skip to content

Commit 4119f46

Browse files
committed
Replace Restart_Vars and Restart_Data by vectors.
Fixes a leak involving Restart_Data.
1 parent 7763f5c commit 4119f46

14 files changed

Lines changed: 46 additions & 71 deletions

SU2_CFD/include/solvers/CFVMFlowSolverBase.inl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -979,10 +979,8 @@ void CFVMFlowSolverBase<V, R>::LoadRestart_impl(CGeometry **geometry, CSolver **
979979
{
980980
/*--- Delete the class memory that is used to load the restart. ---*/
981981

982-
delete [] Restart_Vars;
983-
Restart_Vars = nullptr;
984-
delete [] Restart_Data;
985-
Restart_Data = nullptr;
982+
Restart_Vars.clear();
983+
Restart_Data.clear();
986984
}
987985
END_SU2_OMP_SAFE_GLOBAL_ACCESS
988986
}

SU2_CFD/include/solvers/CSolver.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,10 @@ class CSolver {
133133
su2activevector iPoint_UndLapl; /*!< \brief Auxiliary variable for the undivided Laplacians. */
134134
su2activevector jPoint_UndLapl; /*!< \brief Auxiliary variable for the undivided Laplacians. */
135135

136-
int *Restart_Vars; /*!< \brief Auxiliary structure for holding the number of variables and points in a restart. */
137-
int Restart_ExtIter; /*!< \brief Auxiliary structure for holding the external iteration offset from a restart. */
138-
passivedouble *Restart_Data; /*!< \brief Auxiliary structure for holding the data values from a restart. */
139-
unsigned short nOutputVariables; /*!< \brief Number of variables to write. */
136+
vector<int> Restart_Vars; /*!< \brief Auxiliary structure for holding the number of variables and points in a restart. */
137+
int Restart_ExtIter; /*!< \brief Auxiliary structure for holding the external iteration offset from a restart. */
138+
vector<passivedouble> Restart_Data; /*!< \brief Auxiliary structure for holding the data values from a restart. */
139+
unsigned short nOutputVariables; /*!< \brief Number of variables to write. */
140140

141141
unsigned long nMarker; /*!< \brief Total number of markers using the grid information. */
142142
vector<unsigned long> nVertex; /*!< \brief Store nVertex at each marker for deallocation */

SU2_CFD/src/solvers/CAdjEulerSolver.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3898,10 +3898,8 @@ void CAdjEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf
38983898

38993899
/*--- Delete the class memory that is used to load the restart. ---*/
39003900

3901-
delete [] Restart_Vars;
3902-
delete [] Restart_Data;
3903-
Restart_Vars = nullptr; Restart_Data = nullptr;
3904-
3901+
Restart_Vars.clear();
3902+
Restart_Data.clear();
39053903
}
39063904

39073905
void CAdjEulerSolver::SetAuxVar_Surface_Gradient(CGeometry *geometry, const CConfig *config) {

SU2_CFD/src/solvers/CBaselineSolver.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,10 +480,8 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf
480480

481481
/*--- Delete the class memory that is used to load the restart. ---*/
482482

483-
delete [] Restart_Vars;
484-
delete [] Restart_Data;
485-
Restart_Vars = nullptr; Restart_Data = nullptr;
486-
483+
Restart_Vars.clear();
484+
Restart_Data.clear();
487485
}
488486

489487
void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CConfig *config, int val_iter) {

SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,10 +379,8 @@ void CBaselineSolver_FEM::LoadRestart(CGeometry **geometry, CSolver ***solver, C
379379

380380
/*--- Delete the class memory that is used to load the restart. ---*/
381381

382-
delete [] Restart_Vars;
383-
delete [] Restart_Data;
384-
Restart_Vars = nullptr; Restart_Data = nullptr;
385-
382+
Restart_Vars.clear();
383+
Restart_Data.clear();
386384
}
387385

388386
CBaselineSolver_FEM::~CBaselineSolver_FEM() = default;

SU2_CFD/src/solvers/CFEASolver.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3142,9 +3142,8 @@ void CFEASolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *c
31423142

31433143
/*--- Delete the class memory that is used to load the restart. ---*/
31443144

3145-
delete [] Restart_Vars; Restart_Vars = nullptr;
3146-
delete [] Restart_Data; Restart_Data = nullptr;
3147-
3145+
Restart_Vars.clear();
3146+
Restart_Data.clear();
31483147
}
31493148

31503149
void CFEASolver::RegisterVariables(CGeometry *geometry, CConfig *config, bool reset)

SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9571,8 +9571,6 @@ void CFEM_DG_EulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, C
95719571

95729572
/*--- Delete the class memory that is used to load the restart. ---*/
95739573

9574-
delete [] Restart_Vars;
9575-
delete [] Restart_Data;
9576-
Restart_Vars = nullptr; Restart_Data = nullptr;
9577-
9574+
Restart_Vars.clear();
9575+
Restart_Data.clear();
95789576
}

SU2_CFD/src/solvers/CHeatSolver.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,10 +265,8 @@ void CHeatSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *
265265
/*--- Delete the class memory that is used to load the restart. ---*/
266266

267267
BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS {
268-
delete[] Restart_Vars;
269-
Restart_Vars = nullptr;
270-
delete[] Restart_Data;
271-
Restart_Data = nullptr;
268+
Restart_Vars.clear();
269+
Restart_Data.clear();
272270
}
273271
END_SU2_OMP_SAFE_GLOBAL_ACCESS
274272
}

SU2_CFD/src/solvers/CMeshSolver.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -857,9 +857,8 @@ void CMeshSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *
857857

858858
/*--- Delete the class memory that is used to load the restart. ---*/
859859

860-
delete [] Restart_Vars; Restart_Vars = nullptr;
861-
delete [] Restart_Data; Restart_Data = nullptr;
862-
860+
Restart_Vars.clear();
861+
Restart_Data.clear();
863862
}
864863

865864
void CMeshSolver::RestartOldGeometry(CGeometry *geometry, const CConfig *config) {
@@ -956,8 +955,8 @@ void CMeshSolver::RestartOldGeometry(CGeometry *geometry, const CConfig *config)
956955

957956
/*--- Delete the class memory that is used to load the restart. ---*/
958957

959-
delete [] Restart_Vars; Restart_Vars = nullptr;
960-
delete [] Restart_Data; Restart_Data = nullptr;
958+
Restart_Vars.clear();
959+
Restart_Data.clear();
961960

962961
InitiateComms(geometry, config, CommType);
963962
CompleteComms(geometry, config, CommType);

SU2_CFD/src/solvers/CRadSolver.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,6 @@ void CRadSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *c
160160

161161
/*--- Delete the class memory that is used to load the restart. ---*/
162162

163-
delete [] Restart_Vars;
164-
delete [] Restart_Data;
165-
Restart_Vars = nullptr; Restart_Data = nullptr;
166-
163+
Restart_Vars.clear();
164+
Restart_Data.clear();
167165
}

0 commit comments

Comments
 (0)