Commits

Remi Collet committed 648fdb5

seems simpler...

Comments (0)

Files changed (1)

 BGD_DECLARE(gdImagePtr) gdImageCreateFromWebpCtx (gdIOCtx * infile)
 {
 	int	width, height, ret;
-	unsigned char   *filedata;
+	unsigned char   *filedata = NULL;
 	unsigned char   *read, *temp;
 	unsigned char   *Y = NULL;
 	unsigned char   *U = NULL;
 	size_t size = 0, n;
 	gdImagePtr im;
 
-	filedata = gdMalloc(GD_WEBP_ALLOC_STEP);
-	if (!filedata) {
-		gd_error("WebP decode: alloc failed");
-		return NULL;
-	}
-	read = filedata;
 	do {
-		n = gdGetBuf(read, GD_WEBP_ALLOC_STEP, infile);
-		if (n>0) {
-			size += n;
-			temp = gdRealloc(filedata, size+GD_WEBP_ALLOC_STEP);
-			if (temp) {
-				filedata = temp;
-				read = temp + size;
-			} else {
+		temp = gdRealloc(filedata, size+GD_WEBP_ALLOC_STEP);
+		if (temp) {
+			filedata = temp;
+			read = temp + size;
+		} else {
+			if (filedata) {
 				gdFree(filedata);
-				gd_error("WebP decode: realloc failed");
-				return NULL;
 			}
+			gd_error("WebP decode: realloc failed");
+			return NULL;
 		}
+
+		n = gdGetBuf(read, GD_WEBP_ALLOC_STEP, infile);
+		size += n;
 	} while (n>0);
 
 	ret = WebPDecode(filedata, size, &Y, &U, &V, &width, &height);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.