summaryrefslogtreecommitdiff
path: root/apps/gui/line.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/line.c')
-rw-r--r--apps/gui/line.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/apps/gui/line.c b/apps/gui/line.c
index fe017970e6..fd35102ab0 100644
--- a/apps/gui/line.c
+++ b/apps/gui/line.c
@@ -51,9 +51,17 @@ static void put_text(struct screen *display, int x, int y, struct line_desc *lin
51 const char *text, bool prevent_scroll, int text_skip_pixels); 51 const char *text, bool prevent_scroll, int text_skip_pixels);
52 52
53struct line_desc_scroll { 53struct line_desc_scroll {
54 struct line_desc desc; /* must be first! */ 54 struct line_desc desc;
55 bool used; 55 bool used;
56} lines[MAX_LINES]; 56};
57
58/* Allocate MAX_LINES+1 because at the time get_line_desc() is called
59 * the scroll engine did not yet determine that it ran out of lines
60 * (because puts_scroll_func() wasn't called yet. Therefore we can
61 * run out of lines before setting the used field. By allocating
62 * one item more we can survive that point and set used to false
63 * if the scroll engine runs out of lines */
64static struct line_desc_scroll lines[MAX_LINES+1];
57 65
58static struct line_desc_scroll *get_line_desc(void) 66static struct line_desc_scroll *get_line_desc(void)
59{ 67{