Fix numerous memory leaks.
[pspp] / src / output / ascii.c
index 4bad73aeceef5d32f70051ed89431d165eb1898c..2193f35224ee19ec0f4fca870797019b29a7a6f8 100644 (file)
@@ -450,16 +450,21 @@ ascii_output_table_item (struct ascii_driver *a,
 }
 
 static void
-ascii_output_text (struct ascii_driver *a, const char *text)
+ascii_output_table_item_unref (struct ascii_driver *a,
+                               struct table_item *table_item)
 {
-  struct table_item *table_item;
-
-  table_item = table_item_create (table_from_string (TABLE_HALIGN_LEFT, text),
-                                  NULL, NULL);
   ascii_output_table_item (a, table_item);
   table_item_unref (table_item);
 }
 
+static void
+ascii_output_text (struct ascii_driver *a, const char *text)
+{
+  ascii_output_table_item_unref (
+    a, table_item_create (table_from_string (TABLE_HALIGN_LEFT, text),
+                          NULL, NULL));
+}
+
 static void
 ascii_submit (struct output_driver *driver,
               const struct output_item *output_item)
@@ -509,7 +514,8 @@ ascii_submit (struct output_driver *driver,
           break;
 
         default:
-          ascii_output_table_item (a, text_item_to_table_item (text_item_ref (text_item)));
+          ascii_output_table_item_unref (
+            a, text_item_to_table_item (text_item_ref (text_item)));
           break;
         }
     }