From 5fb3adfc89116c0bf6188e35ba04c39fe5c548cf Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Tue, 29 Jan 2013 13:59:25 -0600 Subject: [PATCH] Fixed potential memory corruption while loading particle information. Slightly reworked the source code --- c_tools/stacking/pruneVoids.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/c_tools/stacking/pruneVoids.cpp b/c_tools/stacking/pruneVoids.cpp index 37f39a3..1e23830 100644 --- a/c_tools/stacking/pruneVoids.cpp +++ b/c_tools/stacking/pruneVoids.cpp @@ -87,7 +87,7 @@ int main(int argc, char **argv) { double nearestEdge, redshift; char line[500], junkStr[10]; int mask_index; - double ranges[2][3], boxLen[3], mul; + double ranges[3][2], boxLen[3], mul; double volNorm, radius; int clock1, clock2; int periodicX=0, periodicY=0, periodicZ=0; @@ -174,7 +174,7 @@ int main(int argc, char **argv) { part[p].y += ranges[1][0]; part[p].z += ranges[2][0]; } - } + } fclose(fp); printf(" Read %d particles...\n", numPartTot); @@ -341,19 +341,19 @@ int main(int argc, char **argv) { if (voids[iVoid].barycenter[0] > boxLen[0]) voids[iVoid].barycenter[0] = voids[iVoid].barycenter[0] - boxLen[0]; if (voids[iVoid].barycenter[0] < 0) - voids[iVoid].barycenter[0] = boxLen[0] - voids[iVoid].barycenter[0]; + voids[iVoid].barycenter[0] = boxLen[0] + voids[iVoid].barycenter[0]; } if (periodicY) { if (voids[iVoid].barycenter[1] > boxLen[1]) voids[iVoid].barycenter[1] = voids[iVoid].barycenter[1] - boxLen[1]; - if (voids[iVoid].barycenter[1] < 1) - voids[iVoid].barycenter[1] = boxLen[1] - voids[iVoid].barycenter[1]; + if (voids[iVoid].barycenter[1] < 0) + voids[iVoid].barycenter[1] = boxLen[1] + voids[iVoid].barycenter[1]; } if (periodicZ) { if (voids[iVoid].barycenter[2] > boxLen[2]) voids[iVoid].barycenter[2] = voids[iVoid].barycenter[2] - boxLen[2]; - if (voids[iVoid].barycenter[2] < 2) - voids[iVoid].barycenter[2] = boxLen[2] - voids[iVoid].barycenter[2]; + if (voids[iVoid].barycenter[2] < 0) + voids[iVoid].barycenter[2] = boxLen[2] + voids[iVoid].barycenter[2]; } @@ -397,8 +397,8 @@ int main(int argc, char **argv) { for (p = 0; p < voids[iVoid].numPart; p++) { dist[0] = fabs(voidPart[p].x - voids[iVoid].barycenter[0]); - dist[0] = fabs(voidPart[p].y - voids[iVoid].barycenter[1]); - dist[0] = fabs(voidPart[p].z - voids[iVoid].barycenter[2]); + dist[1] = fabs(voidPart[p].y - voids[iVoid].barycenter[1]); + dist[2] = fabs(voidPart[p].z - voids[iVoid].barycenter[2]); if (periodicX) dist[0] = fmin(dist[0], boxLen[0]-dist[0]); if (periodicY) dist[1] = fmin(dist[1], boxLen[1]-dist[1]); @@ -564,12 +564,12 @@ int main(int argc, char **argv) { voids[iVoid].densCon, voids[iVoid].voidProb); - fprintf(fpBarycenter, "%d %e %e %e\n", + fprintf(fpBarycenter, "%d %e %e %e\n", voids[iVoid].voidID, // TEST - //voids[iVoid].center[0], - //voids[iVoid].center[1], - //voids[iVoid].center[2]); +// voids[iVoid].center[0], +// voids[iVoid].center[1], +//` voids[iVoid].center[2], voids[iVoid].barycenter[0], voids[iVoid].barycenter[1], voids[iVoid].barycenter[2]);