Revert the replacement of realloc() with reallocf() (el.h:1.2, map.c:1.5 and
tokenizer.c:1.3). Contrary to the commit log there were no memory leaks, but the change introduced a bug because the free'd pointer was not zeroed and calling the appropriate _end() function would call free() a second time.
This commit is contained in:
parent
e000e00118
commit
969f700138
@ -91,7 +91,6 @@ typedef struct el_state_t {
|
||||
*/
|
||||
#define el_malloc(a) malloc(a)
|
||||
#define el_realloc(a,b) realloc(a, b)
|
||||
#define el_reallocf(a,b) reallocf(a, b)
|
||||
#define el_free(a) free(a)
|
||||
|
||||
#include "tty.h"
|
||||
|
@ -1395,10 +1395,10 @@ map_addfunc(EditLine *el, const char *name, const char *help, el_func_t func)
|
||||
if (name == NULL || help == NULL || func == NULL)
|
||||
return (-1);
|
||||
|
||||
if ((p = el_reallocf(el->el_map.func, nf * sizeof(el_func_t))) == NULL)
|
||||
if ((p = el_realloc(el->el_map.func, nf * sizeof(el_func_t))) == NULL)
|
||||
return (-1);
|
||||
el->el_map.func = (el_func_t *) p;
|
||||
if ((p = el_reallocf(el->el_map.help, nf * sizeof(el_bindings_t)))
|
||||
if ((p = el_realloc(el->el_map.help, nf * sizeof(el_bindings_t)))
|
||||
== NULL)
|
||||
return (-1);
|
||||
el->el_map.help = (el_bindings_t *) p;
|
||||
|
@ -65,7 +65,6 @@ typedef enum {
|
||||
#define tok_malloc(a) malloc(a)
|
||||
#define tok_free(a) free(a)
|
||||
#define tok_realloc(a, b) realloc(a, b)
|
||||
#define tok_reallocf(a, b) reallocf(a, b)
|
||||
|
||||
|
||||
struct tokenizer {
|
||||
@ -386,7 +385,7 @@ tok_line(Tokenizer *tok, const char *line, int *argc, char ***argv)
|
||||
if (tok->argc >= tok->amax - 4) {
|
||||
char **p;
|
||||
tok->amax += AINCR;
|
||||
p = (char **) tok_reallocf(tok->argv,
|
||||
p = (char **) tok_realloc(tok->argv,
|
||||
tok->amax * sizeof(char *));
|
||||
if (p == NULL)
|
||||
return (-1);
|
||||
|
Loading…
Reference in New Issue
Block a user