Index: trunk/psLib/src/image/psImageExtraction.c
===================================================================
--- trunk/psLib/src/image/psImageExtraction.c	(revision 2088)
+++ trunk/psLib/src/image/psImageExtraction.c	(revision 2093)
@@ -9,6 +9,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.24 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-13 22:05:03 $
+ *  @version $Revision: 1.25 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-13 23:34:57 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -656,9 +656,10 @@
         if (numRows != mask->numRows || numCols != mask->numCols) {
             psErrorMsg(PS_ERRORNAME_DOMAIN "psImageRadialCut",
-                       PS_ERR_BAD_PARAMETER_VALUE, true,
+                       PS_ERR_BAD_PARAMETER_SIZE, true,
                        PS_ERRORTEXT_psImage_IMAGE_MASK_SIZE,
                        mask->numCols,mask->numRows,
                        numCols, numRows);
             psFree(out);
+            return NULL;
         }
         if (mask->type.type != PS_TYPE_MASK) {
@@ -670,4 +671,5 @@
                        typeStr, PS_TYPE_MASK_NAME);
             psFree(out);
+            return NULL;
         }
     }
@@ -679,6 +681,7 @@
                    PS_ERRORTEXT_psImage_CENTER_NOT_IN_IMAGE,
                    centerCol, centerRow,
-                   numCols, numRows);
-        psFree(out);
+                   numCols-1, numRows-1);
+        psFree(out);
+        return NULL;
     }
 
@@ -693,5 +696,5 @@
     if (radii->n < 2) {
         psErrorMsg(PS_ERRORNAME_DOMAIN "psImageRadialCut",
-                   PS_ERR_BAD_PARAMETER_VALUE, true,
+                   PS_ERR_BAD_PARAMETER_SIZE, true,
                    PS_ERRORTEXT_psImage_RADII_VECTOR_TOOSMALL,
                    radii->n);
@@ -713,5 +716,6 @@
         psErrorMsg(PS_ERRORNAME_DOMAIN "psImageRadialCut",
                    PS_ERR_BAD_PARAMETER_VALUE, false,
-                   PS_ERRORTEXT_psImage_BAD_STAT);
+                   PS_ERRORTEXT_psImage_BAD_STAT,
+                   stats->options);
         psFree(out);
         return NULL;
@@ -725,7 +729,5 @@
     psF64* outData = out->data.F64;
 
-    // sort the radii by value
     psVector* rSqVec = psVectorCopy(NULL, radii, PS_TYPE_F32);
-    psVectorSort(rSqVec,rSqVec);
     psF32* rSq = rSqVec->data.F32;
 
@@ -751,5 +753,5 @@
     }
 
-    // Square the data
+    // Square the radii data
     for (int d = 0; d <= numOut; d++) {
         rSq[d] *= rSq[d];
@@ -787,6 +789,6 @@
             dY = centerRow - (float)row - 0.5f;
             dist = dX*dX+dY*dY;
-            for (int r = 0; r < numOut;) {
-                if (rSq[r] < dist && dist < rSq[++r]) {
+            for (int r = 0; r < numOut; r++) {
+                if (rSq[r] < dist && dist < rSq[r+1]) {
                     int n = buffer[r]->n;
                     if (n == buffer[r]->nalloc) { // in case buffers already full, expand
@@ -828,5 +830,5 @@
     psFree(buffer);
     psFree(bufferMask);
-
+    psFree(rSqVec);
     return out;
 }
