Skip to content

Commit 41f28cb

Browse files
authored
Merge pull request opensim-org#3235 from opensim-org/fix_delp1990-memleak
Patched memory leak in OpenSim::Delp1990Muscle_Deprecated
2 parents 93ebe03 + c49a0f9 commit 41f28cb

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

OpenSim/Actuators/Delp1990Muscle_Deprecated.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,17 @@ void Delp1990Muscle_Deprecated::copyData(const Delp1990Muscle_Deprecated &aMuscl
128128
_activation1 = aMuscle._activation1;
129129
_activation2 = aMuscle._activation2;
130130
_mass = aMuscle._mass;
131+
132+
delete _tendonForceLengthCurve;
131133
_tendonForceLengthCurve = (Function*)Object::SafeCopy(aMuscle._tendonForceLengthCurve);
134+
135+
delete _activeForceLengthCurve;
132136
_activeForceLengthCurve = (Function*)Object::SafeCopy(aMuscle._activeForceLengthCurve);
137+
138+
delete _passiveForceLengthCurve;
133139
_passiveForceLengthCurve = (Function*)Object::SafeCopy(aMuscle._passiveForceLengthCurve);
140+
141+
delete _forceVelocityCurve;
134142
_forceVelocityCurve = (Function*)Object::SafeCopy(aMuscle._forceVelocityCurve);
135143
}
136144

@@ -428,7 +436,8 @@ Function* Delp1990Muscle_Deprecated::getActiveForceLengthCurve() const
428436
*/
429437
bool Delp1990Muscle_Deprecated::setActiveForceLengthCurve(Function* aActiveForceLengthCurve)
430438
{
431-
_activeForceLengthCurve = aActiveForceLengthCurve;
439+
delete _activeForceLengthCurve;
440+
_activeForceLengthCurve = aActiveForceLengthCurve->clone();
432441
return true;
433442
}
434443

@@ -452,7 +461,8 @@ Function* Delp1990Muscle_Deprecated::getPassiveForceLengthCurve() const
452461
*/
453462
bool Delp1990Muscle_Deprecated::setPassiveForceLengthCurve(Function* aPassiveForceLengthCurve)
454463
{
455-
_passiveForceLengthCurve = aPassiveForceLengthCurve;
464+
delete _passiveForceLengthCurve;
465+
_passiveForceLengthCurve = aPassiveForceLengthCurve->clone();
456466
return true;
457467
}
458468

@@ -476,7 +486,8 @@ Function* Delp1990Muscle_Deprecated::getTendonForceLengthCurve() const
476486
*/
477487
bool Delp1990Muscle_Deprecated::setTendonForceLengthCurve(Function* aTendonForceLengthCurve)
478488
{
479-
_tendonForceLengthCurve = aTendonForceLengthCurve;
489+
delete _tendonForceLengthCurve;
490+
_tendonForceLengthCurve = aTendonForceLengthCurve->clone();
480491
return true;
481492
}
482493

@@ -500,7 +511,8 @@ Function* Delp1990Muscle_Deprecated::getForceVelocityCurve() const
500511
*/
501512
bool Delp1990Muscle_Deprecated::setForceVelocityCurve(Function* aForceVelocityCurve)
502513
{
503-
_forceVelocityCurve = aForceVelocityCurve;
514+
delete _forceVelocityCurve;
515+
_forceVelocityCurve = aForceVelocityCurve->clone();
504516
return true;
505517
}
506518

0 commit comments

Comments
 (0)