From 379c2fefdeb4ae8d55add2d9ae44ea274cb7937b Mon Sep 17 00:00:00 2001 From: Zoolooc Date: Mon, 7 Mar 2011 14:35:38 +0100 Subject: memory cleanups --- glcddrivers/image.c | 7 +++++++ glcddrivers/noritake800.c | 4 ++-- tools/showpic/showpic.c | 1 + tools/showtext/showtext.c | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/glcddrivers/image.c b/glcddrivers/image.c index 9c71006..a07ce54 100644 --- a/glcddrivers/image.c +++ b/glcddrivers/image.c @@ -30,6 +30,7 @@ cDriverImage::cDriverImage(cDriverConfig * config) cDriverImage::~cDriverImage() { + DeInit(); delete oldConfig; } @@ -71,9 +72,15 @@ int cDriverImage::Init() int cDriverImage::DeInit() { if (newLCD) + { delete[] newLCD; + newLCD = 0; + } if (oldLCD) + { delete[] oldLCD; + oldLCD = 0; + } return 0; } diff --git a/glcddrivers/noritake800.c b/glcddrivers/noritake800.c index b1c5718..89ae898 100644 --- a/glcddrivers/noritake800.c +++ b/glcddrivers/noritake800.c @@ -170,13 +170,13 @@ cDriverNoritake800::~cDriverNoritake800() int x; if (m_pVFDMem) - for (x = 0; x < (width + 7) / 8; x++) + for (x = 0; x < width; x++) { delete[] m_pVFDMem[x]; } delete[] m_pVFDMem; if (m_pDrawMem) - for (x = 0; x < (width + 7) / 8; x++) + for (x = 0; x < width; x++) { delete[] m_pDrawMem[x]; } diff --git a/tools/showpic/showpic.c b/tools/showpic/showpic.c index f17f361..ebeb73f 100644 --- a/tools/showpic/showpic.c +++ b/tools/showpic/showpic.c @@ -219,6 +219,7 @@ int main(int argc, char *argv[]) if (glcd.Load(image, picFile) == false) { fprintf(stderr, "ERROR: Failed loading file %s\n", picFile.c_str()); + delete lcd; return 8; } diff --git a/tools/showtext/showtext.c b/tools/showtext/showtext.c index 2621db1..333d9e3 100644 --- a/tools/showtext/showtext.c +++ b/tools/showtext/showtext.c @@ -274,6 +274,7 @@ int main(int argc, char *argv[]) lcd->DeInit(); delete lcd; + delete bitmap; return 0; } -- cgit v1.2.3