From: srit <srit> Date: Thu, 4 Nov 2010 18:22:44 +0000 (+0000) Subject: Corrected erroneous free when a real RECTILINEAR field is detected X-Git-Tag: v1.2.0~301 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=f9ba8e0c066f58c8d9f2b10db4306f42470fe7a2;p=clitk.git Corrected erroneous free when a real RECTILINEAR field is detected --- diff --git a/common/clitkXdrImageIOReader.cxx b/common/clitkXdrImageIOReader.cxx index bc3a24a..6f70244 100644 --- a/common/clitkXdrImageIOReader.cxx +++ b/common/clitkXdrImageIOReader.cxx @@ -683,6 +683,7 @@ int clitk::XdrImageIO::ReadImageInformationWithError() } } + float *p = points; switch (field) { case UNIFORM: for (i=0; i<GetNumberOfDimensions(); i++) { @@ -695,21 +696,19 @@ int clitk::XdrImageIO::ReadImageInformationWithError() //Error if fails for (i=0; i<GetNumberOfDimensions(); i++) { //Compute mean spacing - SetSpacing(i,10*(points[GetDimensions(i)-1]-points[0])/(GetDimensions(i)-1)); - SetOrigin(i,10*points[0]); + SetSpacing(i,10*(p[GetDimensions(i)-1]-p[0])/(GetDimensions(i)-1)); + SetOrigin(i,10*p[0]); //Test if rectilinear image is actually uniform (tolerance 0.1 mm) for (j=0; j<GetDimensions(i)-1; j++) { - if (fabs((points[j+1]-points[j])*10-GetSpacing(i))>0.1) { + if (fabs((p[j+1]-p[j])*10-GetSpacing(i))>0.1) { free(points); fclose(fstream); return ER_NOT_HANDLED; } } - points += (int)GetDimensions(i); + p += (int)GetDimensions(i); } - for (i=0; i<GetNumberOfDimensions(); i++) - points -= GetDimensions(i); break; case IRREGULAR: free(points);