Correct memory cleanup.

This commit is contained in:
Guilhem Lavaux 2013-04-01 09:43:05 -04:00
parent b555533fa3
commit 33b32ea43d

View file

@ -14,13 +14,7 @@ using boost::format;
void doWatershed(PARTICLE *p, pid_t np, ZONE *z, int numZones, float maxvol, float voltol) void doWatershed(PARTICLE *p, pid_t np, ZONE *z, int numZones, float maxvol, float voltol)
{ {
char *inyet, *inyet2;
int *zonelist, *zonelist2;
int nhl;
int *links = new int[NLINKS];
int *iord; int *iord;
float maxdenscontrast = 0;
bool *done_zones;
double *sorter = new double[numZones+1]; double *sorter = new double[numZones+1];
/* Assign sorter by probability (could use volume instead) */ /* Assign sorter by probability (could use volume instead) */
@ -38,6 +32,12 @@ void doWatershed(PARTICLE *p, pid_t np, ZONE *z, int numZones, float maxvol, flo
#pragma omp parallel #pragma omp parallel
{ {
char *inyet, *inyet2;
int *zonelist, *zonelist2;
int nhl;
int *links = new int[NLINKS];
bool *done_zones;
inyet = new char[numZones]; inyet = new char[numZones];
inyet2 = new char[numZones]; inyet2 = new char[numZones];
zonelist = new int[numZones]; zonelist = new int[numZones];
@ -218,11 +218,14 @@ void doWatershed(PARTICLE *p, pid_t np, ZONE *z, int numZones, float maxvol, flo
delete[] zonelist; delete[] zonelist;
delete[] zonelist2; delete[] zonelist2;
delete[] links; delete[] links;
delete[] iord; delete[] inyet;
delete[] inyet2;
delete[] done_zones;
} }
delete[] iord;
maxdenscontrast = 0; double maxdenscontrast = 0;
#pragma omp parallel shared(maxdenscontrast) #pragma omp parallel shared(maxdenscontrast)
{ {
double maxdenscontrast_local = 0; double maxdenscontrast_local = 0;