From 8198f77ec4ab18c4d1cceb9daa4096752f5f0b98 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 11 Jun 2021 17:18:57 -0700 Subject: [PATCH] readtokens: prefer idx_t for indexes * lib/readtokens.c (readtoken, readtokens): Prefer idx_t to size_t for indexes, using idx_t-related allocators. --- ChangeLog | 1 + lib/readtokens.c | 14 ++++++-------- lib/readtokens.h | 2 ++ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5dd6384568..6e2c980144 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,7 @@ * lib/getusershell.c (line_size, readname): * lib/linebuffer.c (readlinebuffer_delim): * lib/linebuffer.h (struct linebuffer): + * lib/readtokens.c (readtoken, readtokens): 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/readtokens.c b/lib/readtokens.c index 2c08283e6b..ca9ffd50fe 100644 --- a/lib/readtokens.c +++ b/lib/readtokens.c @@ -82,9 +82,8 @@ readtoken (FILE *stream, size_t n_delim, token_buffer *tokenbuffer) { - char *p; int c; - size_t i, n; + idx_t i; word isdelim[(UCHAR_MAX + bits_per_word) / bits_per_word]; memset (isdelim, 0, sizeof isdelim); @@ -100,8 +99,8 @@ readtoken (FILE *stream, /* empty */ } - p = tokenbuffer->buffer; - n = tokenbuffer->size; + char *p = tokenbuffer->buffer; + idx_t n = tokenbuffer->size; i = 0; for (;;) { @@ -109,7 +108,7 @@ readtoken (FILE *stream, return -1; if (i == n) - p = x2nrealloc (p, &n, sizeof *p); + p = xpalloc (p, &n, 1, -1, sizeof *p); if (c < 0) { @@ -148,8 +147,7 @@ readtokens (FILE *stream, token_buffer tb, *token = &tb; char **tokens; size_t *lengths; - size_t sz; - size_t n_tokens; + idx_t sz, n_tokens; if (projected_n_tokens == 0) projected_n_tokens = 64; @@ -168,7 +166,7 @@ readtokens (FILE *stream, size_t token_length = readtoken (stream, delim, n_delim, token); if (n_tokens >= sz) { - tokens = x2nrealloc (tokens, &sz, sizeof *tokens); + tokens = xpalloc (tokens, &sz, 1, -1, sizeof *tokens); lengths = xreallocarray (lengths, sz, sizeof *lengths); } diff --git a/lib/readtokens.h b/lib/readtokens.h index 9842f3a2ec..6bffb2e43a 100644 --- a/lib/readtokens.h +++ b/lib/readtokens.h @@ -23,6 +23,8 @@ # include +/* FIXME: This header should use idx_t, not size_t. */ + struct tokenbuffer { size_t size; -- 2.39.5