From c4156b1909175cd74154fa4217be053c1180ae9c Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Sun, 17 Apr 2022 10:36:33 -0400 Subject: viewports, set flags to VP_DEFAULT_FLAGS flags were getting un-initialized memory it really didn't matter with the flags getting initialized anyway But once I added a new flag that didn't explicitly set or clear the flag at init well here we are set flags to VP_DEFAULT_FLAGS in viewport_set_defaults() add the flags variable to the default vp's set to 0 (it was already initialized to 0 by bss, make it explicit) Change-Id: I3a9a062455b4cf66d2b8c70fdf05402a5c0c091c --- apps/gui/viewport.c | 2 +- firmware/drivers/lcd-1bit-vert.c | 1 + firmware/drivers/lcd-2bit-horz.c | 1 + firmware/drivers/lcd-2bit-vert.c | 1 + firmware/drivers/lcd-2bit-vi.c | 1 + firmware/drivers/lcd-color-common.c | 1 + firmware/export/lcd.h | 2 ++ 7 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index 3dd8bca979..9f9cb186f5 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c @@ -332,7 +332,7 @@ void viewport_set_defaults(struct viewport *vp, const enum screen_type screen) { vp->buffer = NULL; /* use default frame_buffer */ - + vp->flags = VP_DEFAULT_FLAGS; #if !defined(__PCTOOL__) struct viewport *sbs_area = NULL; if (!is_theme_enabled(screen)) diff --git a/firmware/drivers/lcd-1bit-vert.c b/firmware/drivers/lcd-1bit-vert.c index c86ced9b6c..dcf5e49504 100644 --- a/firmware/drivers/lcd-1bit-vert.c +++ b/firmware/drivers/lcd-1bit-vert.c @@ -71,6 +71,7 @@ static struct viewport default_vp = .y = 0, .width = LCDM(WIDTH), .height = LCDM(HEIGHT), + .flags = 0, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, .buffer = NULL, diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c index b2114ba830..85918a735c 100644 --- a/firmware/drivers/lcd-2bit-horz.c +++ b/firmware/drivers/lcd-2bit-horz.c @@ -64,6 +64,7 @@ static struct viewport default_vp = .y = 0, .width = LCD_WIDTH, .height = LCD_HEIGHT, + .flags = 0, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, .buffer = NULL, diff --git a/firmware/drivers/lcd-2bit-vert.c b/firmware/drivers/lcd-2bit-vert.c index 6a476495d0..a059e3b512 100644 --- a/firmware/drivers/lcd-2bit-vert.c +++ b/firmware/drivers/lcd-2bit-vert.c @@ -66,6 +66,7 @@ static struct viewport default_vp = .y = 0, .width = LCD_WIDTH, .height = LCD_HEIGHT, + .flags = 0, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, .buffer = NULL, diff --git a/firmware/drivers/lcd-2bit-vi.c b/firmware/drivers/lcd-2bit-vi.c index c09bbce2e0..423f4536d4 100644 --- a/firmware/drivers/lcd-2bit-vi.c +++ b/firmware/drivers/lcd-2bit-vi.c @@ -78,6 +78,7 @@ static struct viewport default_vp = .y = 0, .width = LCDM(WIDTH), .height = LCDM(HEIGHT), + .flags = 0, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, .buffer = NULL, diff --git a/firmware/drivers/lcd-color-common.c b/firmware/drivers/lcd-color-common.c index 20d8c65e21..a867583d36 100644 --- a/firmware/drivers/lcd-color-common.c +++ b/firmware/drivers/lcd-color-common.c @@ -61,6 +61,7 @@ static struct viewport default_vp = .y = 0, .width = LCD_WIDTH, .height = LCD_HEIGHT, + .flags = 0, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, .buffer = NULL, diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 2f8fd3e751..0edef7b866 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -182,6 +182,8 @@ struct frame_buffer_t { #define VP_FLAG_VP_DIRTY 0x4000 #define VP_FLAG_CLEAR_FLAG 0x8000 #define VP_FLAG_VP_SET_CLEAN (VP_FLAG_CLEAR_FLAG | VP_FLAG_VP_DIRTY) +/* flags set by viewport_set_defaults() */ +#define VP_DEFAULT_FLAGS (VP_FLAG_VP_DIRTY) struct viewport { int x; -- cgit v1.2.3