From dea8b3717b05939a8ec3a7e49d2f51eef28d137e Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Mon, 14 Jun 2021 17:22:17 +0200 Subject: [PATCH] Fixed memory leak with model select bitmap --- radio/src/gui/colorlcd/model_select.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index e26ed184a..da6209d0e 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -89,6 +89,11 @@ class ModelButton : public Button load(); } + ~ModelButton() + { + if (buffer) { delete buffer; } + } + void load() { uint8_t version; @@ -115,6 +120,7 @@ class ModelButton : public Button } } + delete buffer; buffer = new BitmapBuffer(BMP_RGB565, width(), height()); if (buffer == nullptr) { return; @@ -140,7 +146,10 @@ class ModelButton : public Button void paint(BitmapBuffer *dc) override { FormField::paint(dc); - dc->drawBitmap(0, 0, buffer); + + if (buffer) + dc->drawBitmap(0, 0, buffer); + if (modelCell == modelslist.getCurrentModel()) { dc->drawSolidFilledRect(0, 0, width(), 20, HIGHLIGHT_COLOR); dc->drawSizedText(width() / 2, 2, modelCell->modelName,