From 4f7eca4048555de1c7b14b1dc25859ed17b329fc Mon Sep 17 00:00:00 2001 From: Fabrice Weinberg <Fabrice@weinberg.me> Date: Sat, 9 Jul 2016 18:12:31 +0200 Subject: [PATCH] Fixes #63 by fixing display bounding check --- OLEDDisplay.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/OLEDDisplay.cpp b/OLEDDisplay.cpp index 5ebb433..0184446 100644 --- a/OLEDDisplay.cpp +++ b/OLEDDisplay.cpp @@ -215,14 +215,18 @@ void OLEDDisplay::drawHorizontalLine(int16_t x, int16_t y, int16_t length) { } void OLEDDisplay::drawVerticalLine(int16_t x, int16_t y, int16_t length) { - if (y < 0 || y > DISPLAY_HEIGHT) return; + if (x < 0 || x > DISPLAY_WIDTH) return; - if (x < 0) { - length += x; - x = 0; + if (y < 0) { + length += y; + y = 0; + } + + if ( (y + length) > DISPLAY_HEIGHT) { + length = (DISPLAY_HEIGHT - y); } - if (length < 0) return; + if (length <= 0) return; uint8_t yOffset = y & 7; -- GitLab