From a167e9f751b06c07f952324476fb055bfaaed03b Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Tue, 15 Aug 2017 15:57:29 +0200 Subject: [PATCH] Fixes #5055: infinite loop in lcdDrawFilledRect() when `h` parameter is bigger than 127. Similar fixes in other places. (#5058) --- radio/src/gui/128x64/lcd.cpp | 13 ++++++++----- radio/src/gui/212x64/lcd.cpp | 11 +++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/radio/src/gui/128x64/lcd.cpp b/radio/src/gui/128x64/lcd.cpp index be35b6e6d..e9f46fc8f 100644 --- a/radio/src/gui/128x64/lcd.cpp +++ b/radio/src/gui/128x64/lcd.cpp @@ -750,12 +750,12 @@ void lcdDrawRect(coord_t x, coord_t y, coord_t w, coord_t h, uint8_t pat, LcdFla void lcdDrawFilledRect(coord_t x, scoord_t y, coord_t w, coord_t h, uint8_t pat, LcdFlags att) { #if defined(CPUM64) - for (scoord_t i=y; i> 1) + ((pat & 1) << 7); } #else - for (scoord_t i=y; i= LCD_LINES) return; + + uint8_t *p = &displayBuf[line * LCD_W]; for (coord_t x=0; x= LCD_LINES) return; + uint8_t *p = &displayBuf[line * 4 * LCD_W]; for (coord_t x=0; x