summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/gd/gd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index df0a32f1ab..0fce8ddcdf 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -5363,10 +5363,14 @@ PHP_FUNCTION(imageaffinematrixget)
RETURN_FALSE;
}
if(Z_TYPE_P(options) != IS_DOUBLE) {
- Z_ADDREF_P(options);
- convert_to_double_ex(&options);
+ zval dval;
+ dval = *options;
+ zval_copy_ctor(&dval);
+ convert_to_double(&dval);
+ angle = Z_DVAL(dval);
+ } else {
+ angle = Z_DVAL_P(options);
}
- angle = Z_DVAL_P(options);
if (type == GD_AFFINE_SHEAR_HORIZONTAL) {
res = gdAffineShearHorizontal(affine, angle);