]> granicus.if.org Git - php/commitdiff
Use same logic to load WebP image that other formats
authorRemi Collet <remi@php.net>
Mon, 24 Jun 2013 09:10:52 +0000 (11:10 +0200)
committerRemi Collet <remi@php.net>
Mon, 24 Jun 2013 09:10:52 +0000 (11:10 +0200)
NEWS
ext/gd/gd.c

diff --git a/NEWS b/NEWS
index 2d354998c31af84930190d5e8684a67e35b430a8..2df33bc52146c512235ea3400437518e02e4a790 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,8 @@ OPcache
     imagerotate). (Pierre)
   . Fixed Bug #65060 (imagecreatefrom... crashes with user streams). (Remi)
   . Fixed Bug #65084 (imagecreatefromjpeg fails with URL). (Remi)
+  . Fix gdImageCreateFromWebpCtx and use same logic to load WebP image
+    that other formats. (Remi)
 
 - Intl:
   . Fixed bug #62759: Buggy grapheme_substr() on edge case. (Stas)
index 49370a75d212fcb359e2cdb54e1a96bbe51d2725..9bdedee71b869a5bbb69306800d783245c429c10 100644 (file)
@@ -2367,23 +2367,6 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
                RETURN_FALSE;
        }
 
-       if (image_type == PHP_GDIMG_TYPE_WEBP) {
-               size_t buff_size;
-               char *buff;
-
-               /* needs to be malloc (persistent) - GD will free() it later */
-               buff_size = php_stream_copy_to_mem(stream, &buff, PHP_STREAM_COPY_ALL, 1);
-               if (!buff_size) {
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING,"Cannot read image data");
-                       goto out_err;
-               }
-               im = (*ioctx_func_p)(buff_size, buff);
-               if (!im) {
-                       goto out_err;
-               }
-               goto register_im;
-       }
-
        /* try and avoid allocating a FILE* if the stream is not naturally a FILE* */
        if (php_stream_is(stream, PHP_STREAM_IS_STDIO)) {
                if (FAILURE == php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void**)&fp, REPORT_ERRORS)) {
@@ -2499,7 +2482,7 @@ PHP_FUNCTION(imagecreatefrompng)
    Create a new image from PNG file or URL */
 PHP_FUNCTION(imagecreatefromwebp)
 {
-       _php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WEBP, "WEBP", gdImageCreateFromWebpPtr, gdImageCreateFromWebpPtr);
+       _php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WEBP, "WEBP", gdImageCreateFromWebp, gdImageCreateFromWebpCtx);
 }
 /* }}} */
 #endif /* HAVE_GD_VPX */