* 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 5dd638456..6e2c98014 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 2c08283e6..ca9ffd50f 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 9842f3a2e..6bffb2e43 100644 --- a/lib/readtokens.h +++ b/lib/readtokens.h @@ -23,6 +23,8 @@ # include <stdio.h> +/* FIXME: This header should use idx_t, not size_t. */ + struct tokenbuffer { size_t size; -- 2.30.2