eoMpi: memory leak when setting own job functors. Fixed

This commit is contained in:
Benjamin Bouvier 2012-07-27 15:09:59 +02:00
commit a7ce5c3ffb
2 changed files with 48 additions and 5 deletions

View file

@ -447,10 +447,53 @@ namespace eo
IsFinishedFunction<JobData> & isFinished() { return *_iff; } IsFinishedFunction<JobData> & isFinished() { return *_iff; }
// Setters // Setters
void sendTask( SendTaskFunction<JobData>* stf ) { _stf = stf; } void sendTask( SendTaskFunction<JobData>* stf )
void handleResponse( HandleResponseFunction<JobData>* hrf ) { _hrf = hrf; } {
void processTask( ProcessTaskFunction<JobData>* ptf ) { _ptf = ptf; } if( !stf )
void isFinished( IsFinishedFunction<JobData>* iff ) { _iff = iff; } return;
if( _stf && _stf->needDelete() )
{
delete _stf;
}
_stf = stf;
}
void handleResponse( HandleResponseFunction<JobData>* hrf )
{
if( !hrf )
return;
if( _hrf && _hrf->needDelete() )
{
delete _hrf;
}
_hrf = hrf;
}
void processTask( ProcessTaskFunction<JobData>* ptf )
{
if( !ptf )
return;
if( _ptf && _ptf->needDelete() )
{
delete _ptf;
}
_ptf = ptf;
}
void isFinished( IsFinishedFunction<JobData>* iff )
{
if( !iff )
return;
if( _iff && _iff->needDelete() )
{
delete _iff;
}
_iff = iff;
}
/** /**
* @brief Helpers for wrapping send task functor. * @brief Helpers for wrapping send task functor.

View file

@ -397,7 +397,7 @@ namespace eo
/************************************** /**************************************
* DEFAULT RESET ALGO IMPLEMENTATIONS * * DEFAULT RESET ALGO IMPLEMENTATIONS *
************************************** **************************************/
/** /**
* @brief For a Genetic Algorithm, reinits the population by copying the original one * @brief For a Genetic Algorithm, reinits the population by copying the original one