From: John Darrington 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++) {