X-Git-Url: https://git.saurik.com/android/aapt.git/blobdiff_plain/123209df149afbb7349c7ed8ef9d75a438d4ab20..15c62a5b13cda41eee74f9d224e8a74cf31377b5:/Images.cpp diff --git a/Images.cpp b/Images.cpp index edb12ea..f2414dd 100644 --- a/Images.cpp +++ b/Images.cpp @@ -44,6 +44,9 @@ struct image_info } free(allocRows); } + free(info9Patch.xDivs); + free(info9Patch.yDivs); + free(info9Patch.colors); } png_uint_32 width; @@ -332,8 +335,8 @@ static status_t do_9patch(const char* imageName, image_info* image) int H = image->height; int i, j; - int maxSizeXDivs = (W / 2 + 1) * sizeof(int32_t); - int maxSizeYDivs = (H / 2 + 1) * sizeof(int32_t); + int maxSizeXDivs = W * sizeof(int32_t); + int maxSizeYDivs = H * sizeof(int32_t); int32_t* xDivs = (int32_t*) malloc(maxSizeXDivs); int32_t* yDivs = (int32_t*) malloc(maxSizeYDivs); uint8_t numXDivs = 0; @@ -833,6 +836,7 @@ static void write_png(const char* imageName, int i; png_unknown_chunk unknowns[1]; + unknowns[0].data = NULL; png_bytepp outRows = (png_bytepp) malloc((int) imageInfo.height * png_sizeof(png_bytep)); if (outRows == (png_bytepp) 0) { @@ -939,6 +943,7 @@ static void write_png(const char* imageName, free(outRows[i]); } free(outRows); + free(unknowns[0].data); png_get_IHDR(write_ptr, write_info, &width, &height, &bit_depth, &color_type, &interlace_type,