summaryrefslogtreecommitdiff
path: root/ext/bcmath/bcmath.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bcmath/bcmath.c')
-rw-r--r--ext/bcmath/bcmath.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/ext/bcmath/bcmath.c b/ext/bcmath/bcmath.c
index e8b87dceff..6020a7c6d7 100644
--- a/ext/bcmath/bcmath.c
+++ b/ext/bcmath/bcmath.c
@@ -581,15 +581,20 @@ PHP_FUNCTION(bccomp)
Sets default scale parameter for all bc math functions */
PHP_FUNCTION(bcscale)
{
- zend_long new_scale;
+ zend_long old_scale, new_scale;
- ZEND_PARSE_PARAMETERS_START(1, 1)
+ ZEND_PARSE_PARAMETERS_START(0, 1)
+ Z_PARAM_OPTIONAL
Z_PARAM_LONG(new_scale)
ZEND_PARSE_PARAMETERS_END();
+ old_scale = BCG(bc_precision);
+
+ if (ZEND_NUM_ARGS() == 1) {
BCG(bc_precision) = ((int)new_scale < 0) ? 0 : new_scale;
+ }
- RETURN_TRUE;
+ RETURN_LONG(old_scale);
}
/* }}} */