]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
factor: factor_using_division returns uuint
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 26 Sep 2024 17:49:21 +0000 (10:49 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 28 Sep 2024 00:42:59 +0000 (17:42 -0700)
* src/factor.c (factor_using_division): Return uuint rather than
half via pointer. All callers changed.

src/factor.c

index 66b620061d75ee1fc884fcd5ddc5e54d26427fa8..8efb1aea4f5433b89760e98ef83e0ca1b7986c70 100644 (file)
@@ -728,8 +728,8 @@ factor_insert_refind (struct factors *factors, uintmax_t p, int i, int off)
    order, and the non-multiples of p onto the range lim < q < B.
  */
 
-static uintmax_t
-factor_using_division (uintmax_t *t1p, uintmax_t t1, uintmax_t t0,
+static uuint
+factor_using_division (uintmax_t t1, uintmax_t t0,
                        struct factors *factors)
 {
   if (t0 % 2 == 0)
@@ -775,8 +775,6 @@ factor_using_division (uintmax_t *t1p, uintmax_t t1, uintmax_t t0,
         }
       p += primes_diff[i + 1];
     }
-  if (t1p)
-    *t1p = t1;
 
 #define DIVBLOCK(I)                                                     \
   do {                                                                  \
@@ -808,7 +806,7 @@ factor_using_division (uintmax_t *t1p, uintmax_t t1, uintmax_t t0,
         break;
     }
 
-  return t0;
+  return make_uuint (t1, t0);
 }
 
 static void
@@ -2195,7 +2193,7 @@ factor (uintmax_t t1, uintmax_t t0, struct factors *factors)
   if (t1 == 0 && t0 < 2)
     return;
 
-  t0 = factor_using_division (&t1, t1, t0, factors);
+  uuset (&t1, &t0, factor_using_division (t1, t0, factors));
 
   if (t1 == 0 && t0 < 2)
     return;