1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Avoid unnecessary memset (#14180)

Avoid unnecessary memset from `_bc_do_sub`
This commit is contained in:
Saki Takamachi
2024-05-17 08:03:34 +09:00
committed by GitHub
parent 4988816126
commit 959ea5fb83
4 changed files with 7 additions and 7 deletions

View File

@@ -52,7 +52,7 @@ bc_num bc_add(bc_num n1, bc_num n2, size_t scale_min)
switch (_bc_do_compare(n1, n2, false)) {
case -1:
/* n1 is less than n2, subtract n1 from n2. */
sum = _bc_do_sub(n2, n1, scale_min);
sum = _bc_do_sub(n2, n1);
sum->n_sign = n2->n_sign;
break;
case 0:
@@ -61,7 +61,7 @@ bc_num bc_add(bc_num n1, bc_num n2, size_t scale_min)
break;
case 1:
/* n2 is less than n1, subtract n2 from n1. */
sum = _bc_do_sub(n1, n2, scale_min);
sum = _bc_do_sub(n1, n2);
sum->n_sign = n1->n_sign;
}
}

View File

@@ -169,7 +169,7 @@ bc_num _bc_do_add(bc_num n1, bc_num n2, size_t scale_min)
returned. The signs of N1 and N2 are ignored. Also, N1 is
assumed to be larger than N2. SCALE_MIN is the minimum scale
of the result. */
bc_num _bc_do_sub(bc_num n1, bc_num n2, size_t scale_min)
bc_num _bc_do_sub(bc_num n1, bc_num n2)
{
bc_num diff;
/* The caller is guaranteed that n1 is always large. */
@@ -185,7 +185,7 @@ bc_num _bc_do_sub(bc_num n1, bc_num n2, size_t scale_min)
char *n1ptr, *n2ptr, *diffptr;
/* Allocate temporary storage. */
diff = bc_new_num (diff_len, MAX(diff_scale, scale_min));
diff = bc_new_num_nonzeroed(diff_len, diff_scale);
/* Initialize the subtract. */
n1ptr = (char *) (n1->n_value + n1->n_len + n1->n_scale - 1);

View File

@@ -99,5 +99,5 @@ static inline uint64_t BC_BSWAP64(uint64_t u)
/* routines */
int _bc_do_compare (bc_num n1, bc_num n2, bool use_sign);
bc_num _bc_do_add (bc_num n1, bc_num n2, size_t scale_min);
bc_num _bc_do_sub (bc_num n1, bc_num n2, size_t scale_min);
bc_num _bc_do_sub (bc_num n1, bc_num n2);
void _bc_rm_leading_zeros (bc_num num);

View File

@@ -52,7 +52,7 @@ bc_num bc_sub(bc_num n1, bc_num n2, size_t scale_min)
switch (_bc_do_compare(n1, n2, false)) {
case -1:
/* n1 is less than n2, subtract n1 from n2. */
diff = _bc_do_sub(n2, n1, scale_min);
diff = _bc_do_sub(n2, n1);
diff->n_sign = (n2->n_sign == PLUS ? MINUS : PLUS);
break;
case 0: {
@@ -63,7 +63,7 @@ bc_num bc_sub(bc_num n1, bc_num n2, size_t scale_min)
}
case 1:
/* n2 is less than n1, subtract n2 from n1. */
diff = _bc_do_sub(n1, n2, scale_min);
diff = _bc_do_sub(n1, n2);
diff->n_sign = n1->n_sign;
break;
}