Skip to content

Commit ac0931d

Browse files
committed
Reuse bcmath_check_scale()
1 parent 2e88916 commit ac0931d

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

ext/bcmath/bcmath.c

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,7 @@ PHP_FUNCTION(bcadd)
197197

198198
if (scale_param_is_null) {
199199
scale = BCG(bc_precision);
200-
} else if (scale_param < 0 || scale_param > INT_MAX) {
201-
zend_argument_value_error(3, "must be between 0 and %d", INT_MAX);
200+
} else if (bcmath_check_scale(scale_param, 3) == FAILURE) {
202201
RETURN_THROWS();
203202
} else {
204203
scale = (int) scale_param;
@@ -247,8 +246,7 @@ PHP_FUNCTION(bcsub)
247246

248247
if (scale_param_is_null) {
249248
scale = BCG(bc_precision);
250-
} else if (scale_param < 0 || scale_param > INT_MAX) {
251-
zend_argument_value_error(3, "must be between 0 and %d", INT_MAX);
249+
} else if (bcmath_check_scale(scale_param, 3) == FAILURE) {
252250
RETURN_THROWS();
253251
} else {
254252
scale = (int) scale_param;
@@ -297,8 +295,7 @@ PHP_FUNCTION(bcmul)
297295

298296
if (scale_param_is_null) {
299297
scale = BCG(bc_precision);
300-
} else if (scale_param < 0 || scale_param > INT_MAX) {
301-
zend_argument_value_error(3, "must be between 0 and %d", INT_MAX);
298+
} else if (bcmath_check_scale(scale_param, 3) == FAILURE) {
302299
RETURN_THROWS();
303300
} else {
304301
scale = (int) scale_param;
@@ -347,8 +344,7 @@ PHP_FUNCTION(bcdiv)
347344

348345
if (scale_param_is_null) {
349346
scale = BCG(bc_precision);
350-
} else if (scale_param < 0 || scale_param > INT_MAX) {
351-
zend_argument_value_error(3, "must be between 0 and %d", INT_MAX);
347+
} else if (bcmath_check_scale(scale_param, 3) == FAILURE) {
352348
RETURN_THROWS();
353349
} else {
354350
scale = (int) scale_param;
@@ -402,8 +398,7 @@ PHP_FUNCTION(bcmod)
402398

403399
if (scale_param_is_null) {
404400
scale = BCG(bc_precision);
405-
} else if (scale_param < 0 || scale_param > INT_MAX) {
406-
zend_argument_value_error(3, "must be between 0 and %d", INT_MAX);
401+
} else if (bcmath_check_scale(scale_param, 3) == FAILURE) {
407402
RETURN_THROWS();
408403
} else {
409404
scale = (int) scale_param;
@@ -458,8 +453,7 @@ PHP_FUNCTION(bcpowmod)
458453

459454
if (scale_param_is_null) {
460455
scale = BCG(bc_precision);
461-
} else if (scale_param < 0 || scale_param > INT_MAX) {
462-
zend_argument_value_error(4, "must be between 0 and %d", INT_MAX);
456+
} else if (bcmath_check_scale(scale_param, 4) == FAILURE) {
463457
RETURN_THROWS();
464458
} else {
465459
scale = (int) scale_param;
@@ -535,8 +529,7 @@ PHP_FUNCTION(bcpow)
535529

536530
if (scale_param_is_null) {
537531
scale = BCG(bc_precision);
538-
} else if (scale_param < 0 || scale_param > INT_MAX) {
539-
zend_argument_value_error(3, "must be between 0 and %d", INT_MAX);
532+
} else if (bcmath_check_scale(scale_param, 3) == FAILURE) {
540533
RETURN_THROWS();
541534
} else {
542535
scale = (int) scale_param;
@@ -597,8 +590,7 @@ PHP_FUNCTION(bcsqrt)
597590

598591
if (scale_param_is_null) {
599592
scale = BCG(bc_precision);
600-
} else if (scale_param < 0 || scale_param > INT_MAX) {
601-
zend_argument_value_error(2, "must be between 0 and %d", INT_MAX);
593+
} else if (bcmath_check_scale(scale_param, 2) == FAILURE) {
602594
RETURN_THROWS();
603595
} else {
604596
scale = (int) scale_param;
@@ -642,8 +634,7 @@ PHP_FUNCTION(bccomp)
642634

643635
if (scale_param_is_null) {
644636
scale = BCG(bc_precision);
645-
} else if (scale_param < 0 || scale_param > INT_MAX) {
646-
zend_argument_value_error(3, "must be between 0 and %d", INT_MAX);
637+
} else if (bcmath_check_scale(scale_param, 3) == FAILURE) {
647638
RETURN_THROWS();
648639
} else {
649640
scale = (int) scale_param;
@@ -783,8 +774,7 @@ PHP_FUNCTION(bcscale)
783774
old_scale = BCG(bc_precision);
784775

785776
if (!new_scale_is_null) {
786-
if (new_scale < 0 || new_scale > INT_MAX) {
787-
zend_argument_value_error(1, "must be between 0 and %d", INT_MAX);
777+
if (bcmath_check_scale(new_scale, 1) == FAILURE) {
788778
RETURN_THROWS();
789779
}
790780

0 commit comments

Comments
 (0)