OSDN Git Service

Check if pixmap memory was actually allocated.
authorNathanSweet <nathan.sweet@gmail.com>
Thu, 21 Mar 2013 12:18:10 +0000 (13:18 +0100)
committerNathanSweet <nathan.sweet@gmail.com>
Thu, 21 Mar 2013 12:18:10 +0000 (13:18 +0100)
gdx/jni/gdx2d/gdx2d.c

index 03d6888..f46eff2 100644 (file)
@@ -229,6 +229,7 @@ gdx2d_pixmap* gdx2d_load(const unsigned char *buffer, uint32_t len, uint32_t req
                return NULL;\r
 \r
        gdx2d_pixmap* pixmap = (gdx2d_pixmap*)malloc(sizeof(gdx2d_pixmap));\r
+       if (!pixmap) return 0;\r
        pixmap->width = (uint32_t)width;\r
        pixmap->height = (uint32_t)height;\r
        pixmap->format = (uint32_t)format;\r
@@ -255,10 +256,15 @@ uint32_t gdx2d_bytes_per_pixel(uint32_t format) {
 \r
 gdx2d_pixmap* gdx2d_new(uint32_t width, uint32_t height, uint32_t format) {\r
        gdx2d_pixmap* pixmap = (gdx2d_pixmap*)malloc(sizeof(gdx2d_pixmap));\r
+       if (!pixmap) return 0;\r
        pixmap->width = width;\r
        pixmap->height = height;\r
        pixmap->format = format;\r
        pixmap->pixels = (unsigned char*)malloc(width * height * gdx2d_bytes_per_pixel(format));\r
+       if (!pixmap->pixels) {\r
+               free((void*)pixmap);\r
+               return 0;\r
+       }\r
        return pixmap;\r
 }\r
 void gdx2d_free(const gdx2d_pixmap* pixmap) {\r