Index: trunk/psModules/src/detrend/pmDark.c
===================================================================
--- trunk/psModules/src/detrend/pmDark.c	(revision 18893)
+++ trunk/psModules/src/detrend/pmDark.c	(revision 18960)
@@ -102,5 +102,5 @@
 bool pmDarkCombinePrepare(pmCell *output, const psArray *inputs, psArray *ordinates, const char *normConcept)
 {
-    psArray *values = psArrayAlloc(inputs->n); 
+    psArray *values = psArrayAlloc(inputs->n);
     psVector *roMask = psVectorAlloc(inputs->n, PS_TYPE_U8); // Mask for bad readouts
     psVector *norm = normConcept ? psVectorAlloc(inputs->n, PS_TYPE_F32) : NULL; // Normalizations for each
@@ -117,21 +117,21 @@
         if (!norm) continue;
 
-	pmReadout *readout = inputs->data[i]; // Readout of interest
-	float normValue;            // Normalisation value
-	if (!ordinateLookup(&normValue, &inRange, normConcept, false, NAN, NAN, readout)) {
-	    psWarning("Unable to find value of %s for readout %d", normConcept, i);
-	    roMask->data.U8[i] = 0xff;
-	    norm->data.F32[i] = NAN;
-	    numBadInputs++;
-	    continue;
-	}
-	if (normValue == 0.0) {
-	    psWarning("Normalisation value (%s) for readout %d is zero", normConcept, i);
-	    roMask->data.U8[i] = 0xff;
-	    norm->data.F32[i] = NAN;
-	    numBadInputs++;
-	    continue;
-	}
-	norm->data.F32[i] = 1.0 / normValue;
+        pmReadout *readout = inputs->data[i]; // Readout of interest
+        float normValue;            // Normalisation value
+        if (!ordinateLookup(&normValue, &inRange, normConcept, false, NAN, NAN, readout)) {
+            psWarning("Unable to find value of %s for readout %d", normConcept, i);
+            roMask->data.U8[i] = 0xff;
+            norm->data.F32[i] = NAN;
+            numBadInputs++;
+            continue;
+        }
+        if (normValue == 0.0) {
+            psWarning("Normalisation value (%s) for readout %d is zero", normConcept, i);
+            roMask->data.U8[i] = 0xff;
+            norm->data.F32[i] = NAN;
+            numBadInputs++;
+            continue;
+        }
+        norm->data.F32[i] = 1.0 / normValue;
     }
 
@@ -144,5 +144,5 @@
             psFree(roMask);
             psFree(orders);
-	    psFree(norm);
+            psFree(norm);
             return false;
         }
@@ -215,6 +215,6 @@
         }
 
-	pmReadoutStackDefineOutput(readout, col0, row0, numCols, numRows, false, false, 0);
-	psTrace("psModules.imcombine", 7, "Output minimum: %d,%d\n", col0, row0);
+        pmReadoutStackDefineOutput(readout, col0, row0, numCols, numRows, false, false, 0);
+        psTrace("psModules.imcombine", 7, "Output minimum: %d,%d\n", col0, row0);
     }
 
@@ -269,11 +269,11 @@
     bool mdok = false;
 
-    // retrieve the required parameter vectors 
-    psArray *values  	 = psMetadataLookupPtr(&mdok, output->analysis, "DARK.VALUES");  psAssert (values, "values not supplied");
-    psVector *roMask 	 = psMetadataLookupPtr(&mdok, output->analysis, "DARK.RO.MASK"); psAssert (roMask, "roMask not supplied");
+    // retrieve the required parameter vectors
+    psArray *values      = psMetadataLookupPtr(&mdok, output->analysis, "DARK.VALUES");  psAssert (values, "values not supplied");
+    psVector *roMask     = psMetadataLookupPtr(&mdok, output->analysis, "DARK.RO.MASK"); psAssert (roMask, "roMask not supplied");
     psPolynomialMD *poly = psMetadataLookupPtr(&mdok, output->analysis, "DARK.POLY");    psAssert (poly, "orders not supplied");
 
     // retrieve the norm vector, if supplied
-    psVector *norm  	 = psMetadataLookupPtr(&mdok, output->analysis, "DARK.NORM");    
+    psVector *norm       = psMetadataLookupPtr(&mdok, output->analysis, "DARK.NORM");
 
     // retrieve the 'counts' and 'sigma' images
@@ -367,5 +367,8 @@
 }
 
-bool pmDarkApplyScan_Threaded (psThreadJob *job) {
+bool pmDarkApplyScan_Threaded(const psThreadJob *job)
+{
+    PS_ASSERT_THREAD_JOB_NON_NULL(job, false);
+
     pmReadout *readout   = job->args->data[0];
     pmCell *dark         = job->args->data[1];
@@ -478,7 +481,7 @@
     bool threaded = true;
     int scanRows = pmDetrendGetScanRows();
-    if (scanRows == 0) { 
-	threaded = false;
-	scanRows = readout->image->numRows;
+    if (scanRows == 0) {
+        threaded = false;
+        scanRows = readout->image->numRows;
     }
 
@@ -486,44 +489,41 @@
       int rowStop = PS_MIN (rowStart + scanRows, readout->image->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_DARK");
-	  psArrayAdd (job->args, 1, readout);
-	  psArrayAdd (job->args, 1, dark);
-	  psArrayAdd (job->args, 1, poly);
-	  psArrayAdd (job->args, 1, values);
-	  PS_ARRAY_ADD_SCALAR (job->args, bad, PS_TYPE_MASK);
-	  PS_ARRAY_ADD_SCALAR (job->args, doNorm, PS_TYPE_U8);
-	  PS_ARRAY_ADD_SCALAR (job->args, norm, PS_TYPE_F32);
-	  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;
-	  }
+          // allocate a job, construct the arguments for this job
+          psThreadJob *job = psThreadJobAlloc ("PSMODULES_DETREND_DARK");
+          psArrayAdd (job->args, 1, readout);
+          psArrayAdd (job->args, 1, dark);
+          psArrayAdd (job->args, 1, poly);
+          psArrayAdd (job->args, 1, values);
+          PS_ARRAY_ADD_SCALAR (job->args, bad, PS_TYPE_MASK);
+          PS_ARRAY_ADD_SCALAR (job->args, doNorm, PS_TYPE_U8);
+          PS_ARRAY_ADD_SCALAR (job->args, norm, PS_TYPE_F32);
+          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)) {
+              psFree(job);
+              return false;
+          }
+          psFree(job);
       } else {
-	  pmDarkApplyScan (readout, dark, poly, values, bad, doNorm, norm, rowStart, rowStop);
+          pmDarkApplyScan (readout, dark, poly, values, bad, doNorm, norm, 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");
-
-	// free the done jobs
-	psThreadJob *job = NULL;
-	while ((job = psThreadJobGetDone()) != NULL) {
-	    psFree (job);
-	}
+        // 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 the done jobs
+        psThreadJob *job = NULL;
+        while ((job = psThreadJobGetDone()) != NULL) {
+            psFree (job);
+        }
     }
 
