(print_trns_free) Close the dfm writer if there is one, fixing a
authorBen Pfaff <blp@gnu.org>
Mon, 24 Jan 2005 07:05:36 +0000 (07:05 +0000)
committerBen Pfaff <blp@gnu.org>
Mon, 24 Jan 2005 07:05:36 +0000 (07:05 +0000)
memory leak.

src/ChangeLog
src/print.c

index db74ea372edf48d19c830d0bc02a02b2efaf11c3..a7e6320ae2ef5ff764717b8a2c5e8dca21d51de1 100644 (file)
@@ -1,3 +1,8 @@
+Sun Jan 23 23:02:21 2005  Ben Pfaff  <blp@gnu.org>
+
+       * print.c: (print_trns_free) Close the dfm writer if there is one,
+       fixing a memory leak.
+
 Mon Jan 24 12:24:36 WST 2005 John Darrington <john@darrington.wattle.id.au>
 
        * glob.c oneway.q q2c.c t-test.q vfm.c: Still *more* memory leaks 
index b2ef755cf11bc3fde5f53b158d0e65e0f49604f2..33c800c74e0176e73d5f851d189e0889c9476084 100644 (file)
@@ -977,9 +977,10 @@ print_trns_proc (struct trns_header * trns, struct ccase * c,
 static void
 print_trns_free (struct trns_header * t)
 {
+  struct print_trns *prt = (struct print_trns *) t;
   struct prt_out_spec *i, *n;
 
-  for (i = ((struct print_trns *) t)->spec; i; i = n)
+  for (i = prt->spec; i; i = n)
     {
       switch (i->type)
        {
@@ -998,7 +999,9 @@ print_trns_free (struct trns_header * t)
       n = i->next;
       free (i);
     }
-  free (((struct print_trns *) t)->line);
+  if (prt->writer != NULL)
+    dfm_close_writer (prt->writer);
+  free (prt->line);
 }
 \f
 /* PRINT SPACE. */