diff options
-rw-r--r-- | glcddrivers/image.c | 7 | ||||
-rw-r--r-- | glcddrivers/noritake800.c | 4 | ||||
-rw-r--r-- | tools/showpic/showpic.c | 1 | ||||
-rw-r--r-- | 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; } |