wordsplit_get_words need not fail
* lib/wordsplit.c (wordsplit_get_words): Do not fail merely because realloc fails. Return void, since failure is no longer possible.
This commit is contained in:
@@ -2524,22 +2524,18 @@ wordsplit_free (struct wordsplit *ws)
|
|||||||
wordsplit_free_envbuf (ws);
|
wordsplit_free_envbuf (ws);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
void
|
||||||
wordsplit_get_words (struct wordsplit *ws, idx_t *wordc, char ***wordv)
|
wordsplit_get_words (struct wordsplit *ws, idx_t *wordc, char ***wordv)
|
||||||
{
|
{
|
||||||
/* Tell the memory manager that ws->ws_wordv can be shrunk. */
|
/* Tell the memory manager that ws->ws_wordv can be shrunk. */
|
||||||
char **p = realloc (ws->ws_wordv,
|
char **p = realloc (ws->ws_wordv,
|
||||||
(ws->ws_wordc + 1) * sizeof (ws->ws_wordv[0]));
|
(ws->ws_wordc + 1) * sizeof (ws->ws_wordv[0]));
|
||||||
if (!p)
|
*wordv = p ? p : ws->ws_wordv;
|
||||||
return -1;
|
|
||||||
*wordv = p;
|
|
||||||
*wordc = ws->ws_wordc;
|
*wordc = ws->ws_wordc;
|
||||||
|
|
||||||
ws->ws_wordv = NULL;
|
ws->ws_wordv = NULL;
|
||||||
ws->ws_wordc = 0;
|
ws->ws_wordc = 0;
|
||||||
ws->ws_wordn = 0;
|
ws->ws_wordn = 0;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static char const *const wordsplit_errstr[] = {
|
static char const *const wordsplit_errstr[] = {
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ int wordsplit_len (const char *s, idx_t len, wordsplit_t *ws, unsigned flags);
|
|||||||
void wordsplit_free (wordsplit_t *ws);
|
void wordsplit_free (wordsplit_t *ws);
|
||||||
void wordsplit_free_words (wordsplit_t *ws);
|
void wordsplit_free_words (wordsplit_t *ws);
|
||||||
void wordsplit_free_envbuf (wordsplit_t *ws);
|
void wordsplit_free_envbuf (wordsplit_t *ws);
|
||||||
int wordsplit_get_words (wordsplit_t *ws, idx_t *wordc, char ***wordv);
|
void wordsplit_get_words (wordsplit_t *ws, idx_t *wordc, char ***wordv);
|
||||||
|
|
||||||
int wordsplit_append (wordsplit_t *wsp, int argc, char **argv);
|
int wordsplit_append (wordsplit_t *wsp, int argc, char **argv);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user