]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
od: prefer xpalloc to x2nrealloc
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 7 Nov 2024 20:58:49 +0000 (12:58 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 9 Nov 2024 07:41:18 +0000 (23:41 -0800)
* src/od.c (n_specs, n_specs_allocated, write_block, get_lcm, main):
Use idx_t instead of size_t for some sizes, so that we can
use xpalloc.
(decode_format_string): Prefer xpalloc to X2NREALLOC.

src/od.c

index d23df2c5e132ebb166b70ebddf068e8115573992..3d3d9a35b2a8ff58511d91732b3d7bebc7957edd 100644 (file)
--- a/src/od.c
+++ b/src/od.c
@@ -259,10 +259,10 @@ static bool abbreviate_duplicate_blocks = true;
 static struct tspec *spec;
 
 /* The number of format specs.  */
-static size_t n_specs;
+static idx_t n_specs;
 
 /* The allocated length of SPEC.  */
-static size_t n_specs_allocated;
+static idx_t n_specs_allocated;
 
 /* The number of input bytes formatted per output line.  It must be
    a multiple of the least common multiple of the sizes associated with
@@ -1039,7 +1039,7 @@ decode_format_string (char const *s)
       char const *next;
 
       if (n_specs_allocated <= n_specs)
-        spec = X2NREALLOC (spec, &n_specs_allocated);
+        spec = xpalloc (spec, &n_specs_allocated, 1, -1, sizeof *spec);
 
       if (! decode_one_format (s_orig, s, &next, &spec[n_specs]))
         return false;
@@ -1261,7 +1261,7 @@ write_block (uintmax_t current_offset, size_t n_bytes,
   else
     {
       prev_pair_equal = false;
-      for (size_t i = 0; i < n_specs; i++)
+      for (idx_t i = 0; i < n_specs; i++)
         {
           int datum_width = width_bytes[spec[i].size];
           int fields_per_block = bytes_per_block / datum_width;
@@ -1374,7 +1374,7 @@ get_lcm (void)
 {
   int l_c_m = 1;
 
-  for (size_t i = 0; i < n_specs; i++)
+  for (idx_t i = 0; i < n_specs; i++)
     l_c_m = lcm (l_c_m, width_bytes[spec[i].size]);
   return l_c_m;
 }
@@ -1623,7 +1623,6 @@ int
 main (int argc, char **argv)
 {
   int n_files;
-  size_t i;
   int l_c_m;
   idx_t desired_width IF_LINT ( = 0);
   bool modern = false;
@@ -1644,7 +1643,7 @@ main (int argc, char **argv)
 
   atexit (close_stdout);
 
-  for (i = 0; i <= MAX_INTEGRAL_TYPE_SIZE; i++)
+  for (idx_t i = 0; i <= MAX_INTEGRAL_TYPE_SIZE; i++)
     integral_type_size[i] = NO_SIZE;
 
   integral_type_size[sizeof (char)] = CHAR;
@@ -1657,7 +1656,7 @@ main (int argc, char **argv)
   integral_type_size[sizeof (unsigned_long_long_int)] = LONG_LONG;
 #endif
 
-  for (i = 0; i <= MAX_FP_TYPE_SIZE; i++)
+  for (idx_t i = 0; i <= MAX_FP_TYPE_SIZE; i++)
     fp_type_size[i] = NO_SIZE;
 
 #if FLOAT16_SUPPORTED
@@ -2008,14 +2007,14 @@ main (int argc, char **argv)
     }
 
   /* Compute padding necessary to align output block.  */
-  for (i = 0; i < n_specs; i++)
+  for (idx_t i = 0; i < n_specs; i++)
     {
       int fields_per_block = bytes_per_block / width_bytes[spec[i].size];
       int block_width = (spec[i].field_width + 1) * fields_per_block;
       if (width_per_block < block_width)
         width_per_block = block_width;
     }
-  for (i = 0; i < n_specs; i++)
+  for (idx_t i = 0; i < n_specs; i++)
     {
       int fields_per_block = bytes_per_block / width_bytes[spec[i].size];
       int block_width = spec[i].field_width * fields_per_block;
@@ -2024,7 +2023,7 @@ main (int argc, char **argv)
 
 #ifdef DEBUG
   printf ("lcm=%d, width_per_block=%zu\n", l_c_m, width_per_block);
-  for (i = 0; i < n_specs; i++)
+  for (idx_t i = 0; i < n_specs; i++)
     {
       int fields_per_block = bytes_per_block / width_bytes[spec[i].size];
       affirm (bytes_per_block % width_bytes[spec[i].size] == 0);