diff options
| author | Remi Collet <remi@php.net> | 2014-03-12 15:36:52 +0100 |
|---|---|---|
| committer | Remi Collet <remi@php.net> | 2014-03-12 15:36:52 +0100 |
| commit | a498e649142b9ae773eb695fe5cd0d5bb379893c (patch) | |
| tree | 7533e2b7b1d4f059554b2fc1003337ad736e808d /ext | |
| parent | e2a5859b2f69df61c1034c290bba5dbd4fb24d42 (diff) | |
| parent | 4a1efa350a4859c4c264cb6c2c195c5f690e9269 (diff) | |
| download | php-git-a498e649142b9ae773eb695fe5cd0d5bb379893c.tar.gz | |
Merge branch 'PHP-5.6'
* PHP-5.6:
NEWS
Fixed Bug #66893i imagescale ignore method argument
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/gd/gd.c | 28 | ||||
| -rw-r--r-- | ext/gd/libgd/gd_interpolation.c | 5 |
2 files changed, 5 insertions, 28 deletions
diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 9809b1590b..f54fb9ff8a 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -5109,7 +5109,7 @@ PHP_FUNCTION(imagescale) { zval *IM; gdImagePtr im; - gdImagePtr im_scaled; + gdImagePtr im_scaled = NULL; int new_width, new_height; long tmp_w, tmp_h=-1, tmp_m = GD_BILINEAR_FIXED; gdInterpolationMethod method; @@ -5122,31 +5122,11 @@ PHP_FUNCTION(imagescale) new_height = tmp_h; ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd); - im_scaled = gdImageScale(im, new_width, new_height); - goto finish; - switch (method) { - case GD_NEAREST_NEIGHBOUR: - im_scaled = gdImageScaleNearestNeighbour(im, new_width, new_height); - break; - - case GD_BILINEAR_FIXED: - im_scaled = gdImageScaleBilinear(im, new_width, new_height); - break; - - case GD_BICUBIC: - im_scaled = gdImageScaleBicubicFixed(im, new_width, new_height); - break; - - case GD_BICUBIC_FIXED: - im_scaled = gdImageScaleBicubicFixed(im, new_width, new_height); - break; - - default: - im_scaled = gdImageScaleTwoPass(im, im->sx, im->sy, new_width, new_height); - break; + if (gdImageSetInterpolationMethod(im, method)) { + im_scaled = gdImageScale(im, new_width, new_height); } -finish: + if (im_scaled == NULL) { RETURN_FALSE; } else { diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c index e34242bb73..4db3763ad6 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -2475,10 +2475,7 @@ int gdImageSetInterpolationMethod(gdImagePtr im, gdInterpolationMethod id) switch (id) { case GD_DEFAULT: - im->interpolation_id = GD_BILINEAR_FIXED; - im->interpolation = NULL; - break; - + id = GD_BILINEAR_FIXED; /* Optimized versions */ case GD_BILINEAR_FIXED: case GD_BICUBIC_FIXED: |
