summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerenc Kovacs <tyrael@php.net>2014-10-15 19:42:51 +0200
committerFerenc Kovacs <tyrael@php.net>2014-10-15 19:42:51 +0200
commitcfa1028d7e3942d6921d2c3ba5fba1be3ea78400 (patch)
tree707c5780b8d301f615e9ce55efe7c60ed5663741
parent2109f5bfe362fdfe840a7014bd62682de3d95c5c (diff)
parent503f8193e804ba1eb0847b4c6148844e50a60427 (diff)
downloadphp-git-cfa1028d7e3942d6921d2c3ba5fba1be3ea78400.tar.gz
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5: NEWS Fixed Bug #65171 imagescale() fails Revert "Bug #41631: Observe socket read timeouts in SSL streams" Conflicts: ext/openssl/xp_ssl.c
-rw-r--r--ext/gd/gd.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index f67e80bf8e..7bf0b757a9 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -5118,11 +5118,23 @@ PHP_FUNCTION(imagescale)
return;
}
method = tmp_m;
- new_width = tmp_w;
- new_height = tmp_h;
ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
+ if (tmp_h < 0) {
+ /* preserve ratio */
+ long src_x, src_y;
+
+ src_x = gdImageSX(im);
+ src_y = gdImageSY(im);
+ if (src_x) {
+ tmp_h = tmp_w * src_y / src_x;
+ }
+ }
+
+ new_width = tmp_w;
+ new_height = tmp_h;
+
if (gdImageSetInterpolationMethod(im, method)) {
im_scaled = gdImageScale(im, new_width, new_height);
}