(postcalc): Free sorted_tab and the structures that it points to, to
authorBen Pfaff <blp@gnu.org>
Thu, 13 Sep 2007 04:23:15 +0000 (04:23 +0000)
committerBen Pfaff <blp@gnu.org>
Thu, 13 Sep 2007 04:23:15 +0000 (04:23 +0000)
plug a memory leak.  Fixes bug #20910.  Thanks to John Darrington for
reporting this bug and for review.

src/language/stats/ChangeLog
src/language/stats/crosstabs.q

index e9ec8fcd0f20d162169bc866b652b918087730a7..2499a1a6683de16ecc42ac49d64ee17f2859cf88 100644 (file)
@@ -1,3 +1,9 @@
+2007-09-12  Ben Pfaff  <blp@gnu.org>
+
+       * crosstabs.q (postcalc): Free sorted_tab and the structures that
+       it points to, to plug a memory leak.  Fixes bug #20910.  Thanks to
+       John Darrington for reporting this bug and for review.
+
 2007-09-04  Ben Pfaff  <blp@gnu.org>
 
        * crosstabs.q (cmd_crosstabs): Free xtab and the structures that
index 8adf044c95129abbd2126f38e6a68b8aa602d9cf..0dbb83719ac434a925e36cf2040553a2f3df1c33 100644 (file)
@@ -827,6 +827,16 @@ postcalc (void)
   }
 
   hsh_destroy (gen_tab);
+  if (mode == INTEGER)
+    {
+      int i;
+      for (i = 0; i < n_sorted_tab; i++)
+        {
+          free (sorted_tab[i]->u.data);
+          free (sorted_tab[i]);
+        }
+      free (sorted_tab);
+    }
 }
 
 static void insert_summary (struct tab_table *, int tab_index, double valid);