pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] pspp/src/language/stats ChangeLog aggregate.c d...


From: Ben Pfaff
Subject: [Pspp-cvs] pspp/src/language/stats ChangeLog aggregate.c d...
Date: Thu, 20 Sep 2007 04:48:14 +0000

CVSROOT:        /cvsroot/pspp
Module name:    pspp
Changes by:     Ben Pfaff <blp> 07/09/20 04:48:14

Modified files:
        src/language/stats: ChangeLog aggregate.c descriptives.c 
                            examine.q glm.q oneway.q regression.q 
                            t-test.q 

Log message:
        Fix bug #21108.
        
        * aggregate.c (cmd_aggregate): Destroy casereader consistently,
        even if casereader fails.
        
        * examine.q (run_examine): Ditto.
        
        * glm.q (run_glm): Ditto.
        
        * oneway.q (run_oneway): Ditto.
        
        * regression.q (run_regression): Ditto.
        
        * t-test.q (calculate): Ditto.
        
        * descriptives.c (calc_descriptives): Ditto.  Also avoid
        gratuitous casereader_clone.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/ChangeLog?cvsroot=pspp&r1=1.65&r2=1.66
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/aggregate.c?cvsroot=pspp&r1=1.35&r2=1.36
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/descriptives.c?cvsroot=pspp&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/examine.q?cvsroot=pspp&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/glm.q?cvsroot=pspp&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/oneway.q?cvsroot=pspp&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/regression.q?cvsroot=pspp&r1=1.62&r2=1.63
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/t-test.q?cvsroot=pspp&r1=1.27&r2=1.28

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/ChangeLog,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- ChangeLog   14 Sep 2007 01:39:35 -0000      1.65
+++ ChangeLog   20 Sep 2007 04:48:13 -0000      1.66
@@ -1,3 +1,23 @@
+2007-09-19  Ben Pfaff  <address@hidden>
+
+       Fix bug #21108.
+       
+       * aggregate.c (cmd_aggregate): Destroy casereader consistently,
+       even if casereader fails.
+
+       * examine.q (run_examine): Ditto.
+        
+       * glm.q (run_glm): Ditto.
+
+       * oneway.q (run_oneway): Ditto.
+
+       * regression.q (run_regression): Ditto.
+
+       * t-test.q (calculate): Ditto.
+
+       * descriptives.c (calc_descriptives): Ditto.  Also avoid
+       gratuitous casereader_clone.
+
 2007-09-13  Jason Stover  <address@hidden>
 
        * regression.q (cmd_regression): Move declaration of models in to

Index: aggregate.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/aggregate.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- aggregate.c 7 Jul 2007 06:14:16 -0000       1.35
+++ aggregate.c 20 Sep 2007 04:48:14 -0000      1.36
@@ -291,7 +291,10 @@
       struct ccase c;
 
       if (!casereader_peek (group, 0, &c))
+        {
+          casereader_destroy (group);
         continue;
+        }
       initialize_aggregate_info (&agr, &c);
       case_destroy (&c);
 

Index: descriptives.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/descriptives.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- descriptives.c      7 Jul 2007 06:14:16 -0000       1.26
+++ descriptives.c      20 Sep 2007 04:48:14 -0000      1.27
@@ -699,16 +699,18 @@
   size_t i;
 
   if (!casereader_peek (group, 0, &c))
+    {
+      casereader_destroy (group);
     return;
+    }
   output_split_file_values (ds, &c);
   case_destroy (&c);
 
   group = casereader_create_filter_weight (group, dataset_dict (ds),
                                            NULL, NULL);
 
-  casereader_split (group, &pass1, &pass2);
-  if (dsc->max_moment <= MOMENT_MEAN)
-    casereader_destroy (pass2);
+  pass1 = group;
+  pass2 = dsc->max_moment <= MOMENT_MEAN ? NULL : casereader_clone (pass1);
 
   for (i = 0; i < dsc->var_cnt; i++)
     {
@@ -758,7 +760,10 @@
         }
     }
   if (!casereader_destroy (pass1))
+    {
+      casereader_destroy (pass2);
     return;
+    }
 
   /* Second pass for higher-order moments. */
   if (dsc->max_moment > MOMENT_MEAN)

Index: examine.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/examine.q,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- examine.q   7 Jul 2007 06:14:16 -0000       1.27
+++ examine.q   20 Sep 2007 04:48:14 -0000      1.28
@@ -720,7 +720,10 @@
   struct factor *fctr;
 
   if (!casereader_peek (input, 0, &c))
+    {
+      casereader_destroy (input);
     return;
+    }
   output_split_file_values (ds, &c);
   case_destroy (&c);
 

Index: glm.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/glm.q,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- glm.q       13 Jul 2007 00:46:41 -0000      1.2
+++ glm.q       20 Sep 2007 04:48:14 -0000      1.3
@@ -251,7 +251,10 @@
   assert (model != NULL);
 
   if (!casereader_peek (input, 0, &c))
+    {
+      casereader_destroy (input);
     return true;
+    }
   output_split_file_values (ds, &c);
   case_destroy (&c);
 

Index: oneway.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/oneway.q,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- oneway.q    7 Jul 2007 06:14:17 -0000       1.25
+++ oneway.q    20 Sep 2007 04:48:14 -0000      1.26
@@ -899,7 +899,10 @@
   struct ccase c;
 
   if (!casereader_peek (input, 0, &c))
+    {
+      casereader_destroy (input);
     return;
+    }
   output_split_file_values (ds, &c);
   case_destroy (&c);
 

Index: regression.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/regression.q,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- regression.q        14 Sep 2007 01:39:35 -0000      1.62
+++ regression.q        20 Sep 2007 04:48:14 -0000      1.63
@@ -1136,7 +1136,10 @@
   assert (models != NULL);
 
   if (!casereader_peek (input, 0, &c))
+    {
+      casereader_destroy (input);
     return true;
+    }
   output_split_file_values (ds, &c);
   case_destroy (&c);
 

Index: t-test.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/t-test.q,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- t-test.q    27 Aug 2007 05:05:54 -0000      1.27
+++ t-test.q    20 Sep 2007 04:48:14 -0000      1.28
@@ -1787,7 +1787,10 @@
   enum mv_class exclude = cmd->miss != TTS_INCLUDE ? MV_ANY : MV_SYSTEM;
 
   if (!casereader_peek (input, 0, &c))
+    {
+      casereader_destroy (input);
     return;
+    }
   output_split_file_values (ds, &c);
   case_destroy (&c);
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]