bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 10/13] savedir: prefer idx_t for indexes


From: Paul Eggert
Subject: [PATCH 10/13] savedir: prefer idx_t for indexes
Date: Fri, 11 Jun 2021 17:25:50 -0700

* lib/savedir.c (streamsavedir):
Prefer idx_t to size_t for indexes, using idx_t-related allocators.
---
 ChangeLog     |  1 +
 lib/savedir.c | 14 ++++++--------
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index be79b866c..93039a69a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,7 @@
        * lib/linebuffer.h (struct linebuffer):
        * lib/readtokens.c (readtoken, readtokens):
        * lib/readutmp.c (read_utmp):
+       * lib/savedir.c (streamsavedir):
        Prefer idx_t to size_t for indexes, and use idx_t-related allocators.
        * lib/basename.c: Do not include xstrndup.h.
        (basename): Simplify by always using memcpy.
diff --git a/lib/savedir.c b/lib/savedir.c
index 1c23d75b6..55e0acd87 100644
--- a/lib/savedir.c
+++ b/lib/savedir.c
@@ -93,7 +93,7 @@ streamsavedir (DIR *dirp, enum savedir_option option)
   char *name_space = NULL;
   idx_t allocated = 0;
   direntry_t *entries = NULL;
-  size_t entries_allocated = 0;
+  idx_t entries_allocated = 0;
   idx_t entries_used = 0;
   idx_t used = 0;
   comparison_function cmp = comparison_function_table[option];
@@ -120,8 +120,8 @@ streamsavedir (DIR *dirp, enum savedir_option option)
           if (cmp)
             {
               if (entries_allocated == entries_used)
-                entries = x2nrealloc (entries, &entries_allocated,
-                                      sizeof *entries);
+                entries = xpalloc (entries, &entries_allocated, 1, -1,
+                                   sizeof *entries);
               entries[entries_used].name = xstrdup (entry);
 #if D_INO_IN_DIRENT
               entries[entries_used].ino = dp->d_ino;
@@ -149,13 +149,11 @@ streamsavedir (DIR *dirp, enum savedir_option option)
 
   if (cmp)
     {
-      size_t i;
-
       if (entries_used)
         qsort (entries, entries_used, sizeof *entries, cmp);
-      name_space = xmalloc (used + 1);
+      name_space = ximalloc (used + 1);
       used = 0;
-      for (i = 0; i < entries_used; i++)
+      for (idx_t i = 0; i < entries_used; i++)
         {
           char *dest = name_space + used;
           used += stpcpy (dest, entries[i].name) - dest + 1;
@@ -164,7 +162,7 @@ streamsavedir (DIR *dirp, enum savedir_option option)
       free (entries);
     }
   else if (used == allocated)
-    name_space = xrealloc (name_space, used + 1);
+    name_space = xirealloc (name_space, used + 1);
 
   name_space[used] = '\0';
   return name_space;
-- 
2.30.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]