Index: trunk/psModules/src/detrend/pmFlatField.c
===================================================================
--- trunk/psModules/src/detrend/pmFlatField.c	(revision 18893)
+++ trunk/psModules/src/detrend/pmFlatField.c	(revision 18960)
@@ -13,5 +13,8 @@
 #include "pmDetrendThreads.h"
 
-bool pmFlatFieldScan_Threaded (psThreadJob *job) {
+bool pmFlatFieldScan_Threaded(const psThreadJob *job)
+{
+    PS_ASSERT_THREAD_JOB_NON_NULL(job, false);
+
     psImage *inImage   = job->args->data[0];
     psImage *inMask    = job->args->data[1];
@@ -29,6 +32,6 @@
 
 // Macro for all PS types
-#define FLAT_DIVISION_CASE(TYPE, SPECIAL)	\
-    case PS_TYPE_##TYPE:			\
+#define FLAT_DIVISION_CASE(TYPE, SPECIAL)       \
+    case PS_TYPE_##TYPE:                        \
     for (int j = rowStart; j < rowStop; j++) { \
         for (int i = 0; i < inImage->numCols; i++) { \
@@ -129,7 +132,7 @@
     bool threaded = true;
     int scanRows = pmDetrendGetScanRows();
-    if (scanRows == 0) { 
-	threaded = false;
-	scanRows = inImage->numRows;
+    if (scanRows == 0) {
+        threaded = false;
+        scanRows = inImage->numRows;
     }
 
@@ -137,44 +140,41 @@
       int rowStop = PS_MIN (rowStart + scanRows, inImage->numRows);
 
-# define PS_ARRAY_ADD_SCALAR(ARRAY, VALUE, TYPE) { \
-      psScalar *scalar = psScalarAlloc(VALUE, TYPE); \
-      psArrayAdd(ARRAY, 1, scalar); \
-      psFree (scalar); }
-      
       if (threaded) {
-	  // allocate a job, construct the arguments for this job
-	  psThreadJob *job = psThreadJobAlloc ("PSMODULES_DETREND_FLAT");
-	  psArrayAdd (job->args, 1, inImage);
-	  psArrayAdd (job->args, 1, inMask);
-	  psArrayAdd (job->args, 1, flatImage);
-	  psArrayAdd (job->args, 1, flatMask);
-	  PS_ARRAY_ADD_SCALAR (job->args, badFlat, PS_TYPE_U8);
-	  PS_ARRAY_ADD_SCALAR (job->args, xOffset, PS_TYPE_S32);
-	  PS_ARRAY_ADD_SCALAR (job->args, yOffset, PS_TYPE_S32);
-	  PS_ARRAY_ADD_SCALAR (job->args, rowStart, PS_TYPE_S32);
-	  PS_ARRAY_ADD_SCALAR (job->args, rowStop, PS_TYPE_S32);
+          // allocate a job, construct the arguments for this job
+          psThreadJob *job = psThreadJobAlloc ("PSMODULES_DETREND_FLAT");
+          psArrayAdd (job->args, 1, inImage);
+          psArrayAdd (job->args, 1, inMask);
+          psArrayAdd (job->args, 1, flatImage);
+          psArrayAdd (job->args, 1, flatMask);
+          PS_ARRAY_ADD_SCALAR (job->args, badFlat, PS_TYPE_U8);
+          PS_ARRAY_ADD_SCALAR (job->args, xOffset, PS_TYPE_S32);
+          PS_ARRAY_ADD_SCALAR (job->args, yOffset, PS_TYPE_S32);
+          PS_ARRAY_ADD_SCALAR (job->args, rowStart, PS_TYPE_S32);
+          PS_ARRAY_ADD_SCALAR (job->args, rowStop, PS_TYPE_S32);
 
-	  // ppImageDetrendReadout(config, options, view)
-	  if (!psThreadJobAddPending (job)) {
-	      return false;
-	  }
+          // ppImageDetrendReadout(config, options, view)
+          if (!psThreadJobAddPending (job)) {
+              psFree(job);
+              return false;
+          }
+          psFree(job);
       } else {
-	  pmFlatFieldScan (inImage, inMask, flatImage, flatMask, badFlat, xOffset, yOffset, rowStart, rowStop);
+          pmFlatFieldScan (inImage, inMask, flatImage, flatMask, badFlat, xOffset, yOffset, rowStart, rowStop);
       }
     }
 
     if (threaded) {
-	// wait here for the threaded jobs to finish
-	if (!psThreadPoolWait ()) {
-	    psError(PS_ERR_UNKNOWN, false, "Unable to interpolate image.");
-	    return false;
-	}
-	fprintf (stderr, "success for threaded jobs\n");
+        // wait here for the threaded jobs to finish
+        if (!psThreadPoolWait(false)) {
+            psError(PS_ERR_UNKNOWN, false, "Unable to interpolate image.");
+            return false;
+        }
+        fprintf (stderr, "success for threaded jobs\n");
 
-	// free done jobs
-	psThreadJob *job = NULL;
-	while ((job = psThreadJobGetDone()) != NULL) {
-	    psFree (job);
-	}
+        // free done jobs
+        psThreadJob *job = NULL;
+        while ((job = psThreadJobGetDone()) != NULL) {
+            psFree (job);
+        }
     }
 
