From bd1b0922e53ef28dc6fc87b9ffbe245066c22250 Mon Sep 17 00:00:00 2001 From: Saki Takamachi Date: Thu, 9 May 2024 00:27:56 +0900 Subject: [PATCH] Avoid unnecessary memset --- ext/bcmath/libbcmath/src/add.c | 4 ++-- ext/bcmath/libbcmath/src/doaddsub.c | 4 ++-- ext/bcmath/libbcmath/src/private.h | 2 +- ext/bcmath/libbcmath/src/sub.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ext/bcmath/libbcmath/src/add.c b/ext/bcmath/libbcmath/src/add.c index 67fca23e5b590..12e1d64b52726 100644 --- a/ext/bcmath/libbcmath/src/add.c +++ b/ext/bcmath/libbcmath/src/add.c @@ -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; } } diff --git a/ext/bcmath/libbcmath/src/doaddsub.c b/ext/bcmath/libbcmath/src/doaddsub.c index eb2f7b6645d7a..f8f6848af1049 100644 --- a/ext/bcmath/libbcmath/src/doaddsub.c +++ b/ext/bcmath/libbcmath/src/doaddsub.c @@ -121,7 +121,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. */ @@ -137,7 +137,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); diff --git a/ext/bcmath/libbcmath/src/private.h b/ext/bcmath/libbcmath/src/private.h index f21bef665f954..18e9537a0862f 100644 --- a/ext/bcmath/libbcmath/src/private.h +++ b/ext/bcmath/libbcmath/src/private.h @@ -99,5 +99,5 @@ inline uint64_t 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); diff --git a/ext/bcmath/libbcmath/src/sub.c b/ext/bcmath/libbcmath/src/sub.c index 92e7ffda949cc..232f790317a18 100644 --- a/ext/bcmath/libbcmath/src/sub.c +++ b/ext/bcmath/libbcmath/src/sub.c @@ -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; }