summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorRemi Collet <remi@php.net>2014-03-12 15:36:08 +0100
committerRemi Collet <remi@php.net>2014-03-12 15:36:08 +0100
commit5bd13c523125a552f712f87a0ae55bb236c8fb54 (patch)
tree4c578cc550ce6d4bf850a98b6aec54e079750cb7 /ext
parent5e93a213f66c06650c5a8bbfd05f00265c2a5d79 (diff)
parentf2d5b2b6c657db29af3bc92d93645ff66574b56f (diff)
downloadphp-git-5bd13c523125a552f712f87a0ae55bb236c8fb54.tar.gz
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5: Fixed Bug #66893i imagescale ignore method argument
Diffstat (limited to 'ext')
-rw-r--r--ext/gd/gd.c28
-rw-r--r--ext/gd/libgd/gd_interpolation.c5
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: