Skip to content

Commit 5d91f87

Browse files
committed
Remove rscale in bc_raisemod
power is a copy of base and returns early if base->n_scale is non-zero. Since scale is size_t, it is always greater than or equal to 0, so rscale is always the value of scale.
1 parent c2553a2 commit 5d91f87

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

ext/bcmath/libbcmath/src/raisemod.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
raise_mod_status bc_raisemod(bc_num base, bc_num expo, bc_num mod, bc_num *result, size_t scale)
3737
{
3838
bc_num power, exponent, modulus, parity, temp;
39-
size_t rscale;
4039

4140
/* Check the base for scale digits. */
4241
if (base->n_scale != 0) {
@@ -66,18 +65,17 @@ raise_mod_status bc_raisemod(bc_num base, bc_num expo, bc_num mod, bc_num *resul
6665
bc_init_num(&parity);
6766

6867
/* Do the calculation. */
69-
rscale = MAX(scale, power->n_scale);
7068
if (!bc_compare(modulus, BCG(_one_))) {
7169
bc_free_num (&temp);
7270
temp = bc_new_num (1, scale);
7371
} else {
7472
while (!bc_is_zero(exponent)) {
7573
(void) bc_divmod(exponent, BCG(_two_), &exponent, &parity, 0);
7674
if (!bc_is_zero(parity)) {
77-
bc_multiply(temp, power, &temp, rscale);
75+
bc_multiply(temp, power, &temp, scale);
7876
(void) bc_modulo(temp, modulus, &temp, scale);
7977
}
80-
bc_multiply(power, power, &power, rscale);
78+
bc_multiply(power, power, &power, scale);
8179
(void) bc_modulo(power, modulus, &power, scale);
8280
}
8381
}

0 commit comments

Comments
 (0)