made matrix argument const in coefficient initialization
[pspp-builds.git] / src / math / sort.c
index 1d2257b246ded9d0f33f1aa3d42ad5ea40592ef5..3ce5da5707cb2ab1d3508eadf3c48a7ad5b6f0a2 100644 (file)
@@ -37,6 +37,7 @@
 #include <language/expressions/public.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
@@ -62,8 +63,6 @@ static void
 prepare_to_sort_active_file (void) 
 {
   proc_cancel_temporary_transformations (); 
-  expr_free (process_if_expr);
-  process_if_expr = NULL;
 }
 
 /* Sorts the active file in-place according to CRITERIA.
@@ -114,8 +113,11 @@ sort_active_file_to_casefile (const struct sort_criteria *criteria)
 
   cb_data.criteria = criteria;
   cb_data.output = NULL;
-  multipass_procedure (sort_to_casefile_callback, &cb_data);
-
+  if (!multipass_procedure (sort_to_casefile_callback, &cb_data)) 
+    {
+      casefile_destroy (cb_data.output);
+      return NULL;
+    }
   return cb_data.output;
 }
 
@@ -172,7 +174,7 @@ do_internal_sort (struct casereader *reader,
             {
               bool ok = casereader_read_xfer (reader, &cases[i].c);
               if (!ok)
-                abort ();
+                NOT_REACHED ();
               cases[i].idx = i;
             }
 
@@ -182,7 +184,7 @@ do_internal_sort (struct casereader *reader,
           for (i = 0; i < case_cnt; i++)
             casefile_append_xfer (dst, &cases[i].c);
           if (casefile_error (dst))
-            abort ();
+            NOT_REACHED ();
 
           free (cases);
         }