From: John Darrington <john@darrington.wattle.id.au>
Date: Sat, 25 Feb 2012 13:59:14 +0000 (+0100)
Subject: ascii.c: Reallocate the lines after the page is resized
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f75c79875f9a2072c80c7bc6c7118a09f0d949fc;p=pspp

ascii.c: Reallocate the lines after the page is resized
---

diff --git a/src/output/ascii.c b/src/output/ascii.c
index e66f2a17be..1688fd1bf1 100644
--- a/src/output/ascii.c
+++ b/src/output/ascii.c
@@ -202,6 +202,24 @@ static void ascii_draw_cell (void *, const struct table_cell *,
                              int bb[TABLE_N_AXES][2],
                              int clip[TABLE_N_AXES][2]);
 
+static void
+reallocate_lines (struct ascii_driver *a)
+{
+  if (a->length > a->allocated_lines)
+    {
+      int i;
+      a->lines = xnrealloc (a->lines, a->length, sizeof *a->lines);
+      for (i = a->allocated_lines; i < a->length; i++)
+        {
+          struct ascii_line *line = &a->lines[i];
+          ds_init_empty (&line->s);
+          line->width = 0;
+        }
+      a->allocated_lines = a->length;
+    }
+}
+
+
 static struct ascii_driver *
 ascii_driver_cast (struct output_driver *driver)
 {
@@ -340,6 +358,8 @@ update_page_size (struct ascii_driver *a, bool issue_error)
       return false;
     }
 
+  reallocate_lines (a);
+
   return true;
 }
 
@@ -1109,17 +1129,7 @@ ascii_open_page (struct ascii_driver *a)
 
   a->page_number++;
 
-  if (a->length > a->allocated_lines)
-    {
-      a->lines = xnrealloc (a->lines, a->length, sizeof *a->lines);
-      for (i = a->allocated_lines; i < a->length; i++)
-        {
-          struct ascii_line *line = &a->lines[i];
-          ds_init_empty (&line->s);
-          line->width = 0;
-        }
-      a->allocated_lines = a->length;
-    }
+  reallocate_lines (a);
 
   for (i = 0; i < a->length; i++)
     {