Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: GraphicsDisplay.cpp
- Revision:
- 145:5eb2492acdda
- Parent:
- 136:224e03d5c31f
- Child:
- 146:373d59f08357
diff -r 2ec78a50dc98 -r 5eb2492acdda GraphicsDisplay.cpp
--- a/GraphicsDisplay.cpp Thu Dec 29 20:06:00 2016 +0000
+++ b/GraphicsDisplay.cpp Sat May 06 20:27:44 2017 +0000
@@ -9,6 +9,12 @@
#include "Bitmap.h"
#include "string.h"
+//#include "Utility.h" // private memory manager
+#ifndef UTILITY_H
+#define swMalloc malloc // use the standard
+#define swFree free
+#endif
+
//#define DEBUG "GD "
// ...
// INFO("Stuff to show %d", var); // new-line is automatically appended
@@ -303,7 +309,7 @@
// Read the color palette
colorCount = 1 << BMP_Info.biBitCount;
paletteSize = sizeof(RGBQUAD) * colorCount;
- colorPalette = (RGBQUAD *)malloc(paletteSize);
+ colorPalette = (RGBQUAD *)swMalloc(paletteSize);
if (colorPalette == NULL) {
fclose(Image);
return(not_enough_ram);
@@ -314,17 +320,17 @@
int lineBufSize = ((BPP_t * PixelWidth + 7)/8);
INFO("BPP_t %d, PixelWidth %d, lineBufSize %d", BPP_t, PixelWidth, lineBufSize);
- lineBuffer = (uint8_t *)malloc(lineBufSize);
+ lineBuffer = (uint8_t *)swMalloc(lineBufSize);
if (lineBuffer == NULL) {
- free(colorPalette);
+ swFree(colorPalette);
fclose(Image);
return(not_enough_ram);
}
- pixelBuffer = (color_t *)malloc(PixelWidth * sizeof(color_t));
+ pixelBuffer = (color_t *)swMalloc(PixelWidth * sizeof(color_t));
if (pixelBuffer == NULL) {
- free(lineBuffer);
+ swFree(lineBuffer);
if (colorPalette)
- free(colorPalette);
+ swFree(colorPalette);
fclose(Image);
return(not_enough_ram);
}
@@ -374,10 +380,10 @@
}
// _EndGraphicsStream();
window(restore);
- free(pixelBuffer); // don't leak memory
- free(lineBuffer);
+ swFree(pixelBuffer); // don't leak memory
+ swFree(lineBuffer);
if (colorPalette)
- free(colorPalette);
+ swFree(colorPalette);
return (noerror);
}
@@ -397,7 +403,7 @@
RetCode_t GraphicsDisplay::RenderJpegFile(loc_t x, loc_t y, const char *Name_JPG)
{
- #define JPEG_WORK_SPACE_SIZE 3100
+ #define JPEG_WORK_SPACE_SIZE 3100 // Worst case requirements for the decompression
JDEC * jdec;
uint16_t * work;
RetCode_t r = noerror; // start optimistic
@@ -405,12 +411,10 @@
if (!fh)
return(file_not_found);
-
//INFO("RenderJpegFile(%d,%d,%s)", x,y, Name_JPG);
- work = (uint16_t *)malloc(JPEG_WORK_SPACE_SIZE);
-
+ work = (uint16_t *)swMalloc(JPEG_WORK_SPACE_SIZE);
if (work) {
- jdec = (JDEC *)malloc(sizeof(JDEC));
+ jdec = (JDEC *)swMalloc(sizeof(JDEC));
if (jdec) {
memset(work, 0, JPEG_WORK_SPACE_SIZE/sizeof(uint16_t));
memset(jdec, 0, sizeof(JDEC));
@@ -424,12 +428,12 @@
} else {
r = not_supported_format; // error("jd_prepare error:%d", r);
}
- free(jdec);
+ swFree(jdec);
} else {
WARN("checkpoint");
r = not_enough_ram;
}
- free(work);
+ swFree(work);
} else {
WARN("checkpoint");
r = not_enough_ram;