From 66d29a54a1325217295d19243a5003b65f6ededd Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Thu, 26 Jan 2017 21:57:24 +0100 Subject: [PATCH] lib: clean up tab-completion memory counting Signed-off-by: David Lamparter --- lib/vector.c | 14 +------------- lib/vector.h | 3 --- lib/vty.c | 4 +--- tests/test-commands.c | 2 +- vtysh/vtysh.c | 5 +++-- 5 files changed, 6 insertions(+), 22 deletions(-) diff --git a/lib/vector.c b/lib/vector.c index 03ad3171d6..0b1d5d5046 100644 --- a/lib/vector.c +++ b/lib/vector.c @@ -25,7 +25,7 @@ #include "memory.h" DEFINE_MTYPE_STATIC(LIB, VECTOR, "Vector") -DEFINE_MTYPE( LIB, VECTOR_INDEX, "Vector index") +DEFINE_MTYPE_STATIC(LIB, VECTOR_INDEX, "Vector index") /* Initialize vector : allocate memory and return vector. */ vector @@ -43,18 +43,6 @@ vector_init (unsigned int size) return v; } -void -vector_only_wrapper_free (vector v) -{ - XFREE (MTYPE_VECTOR, v); -} - -void -vector_only_index_free (void *index) -{ - XFREE (MTYPE_VECTOR_INDEX, index); -} - void vector_free (vector v) { diff --git a/lib/vector.h b/lib/vector.h index d8f4c78608..28f4ad320f 100644 --- a/lib/vector.h +++ b/lib/vector.h @@ -24,7 +24,6 @@ #define _ZEBRA_VECTOR_H #include "memory.h" -DECLARE_MTYPE(VECTOR_INDEX) /* struct for vector */ struct _vector @@ -55,8 +54,6 @@ extern int vector_set (vector v, void *val); extern int vector_set_index (vector v, unsigned int i, void *val); extern void vector_unset (vector v, unsigned int i); extern unsigned int vector_count (vector v); -extern void vector_only_wrapper_free (vector v); -extern void vector_only_index_free (void *index); extern void vector_free (vector v); extern vector vector_copy (vector v); diff --git a/lib/vty.c b/lib/vty.c index 9413d003ef..e70079c52d 100644 --- a/lib/vty.c +++ b/lib/vty.c @@ -962,8 +962,6 @@ vty_complete_command (struct vty *vty) vty_backward_pure_word (vty); vty_insert_word_overwrite (vty, matched[0]); XFREE (MTYPE_TMP, matched[0]); - vector_only_index_free (matched); - return; break; case CMD_COMPLETE_LIST_MATCH: for (i = 0; matched[i] != NULL; i++) @@ -986,7 +984,7 @@ vty_complete_command (struct vty *vty) break; } if (matched) - vector_only_index_free (matched); + XFREE (MTYPE_TMP, matched); } static void diff --git a/tests/test-commands.c b/tests/test-commands.c index c0bc39f88f..c86ffc5891 100644 --- a/tests/test-commands.c +++ b/tests/test-commands.c @@ -317,7 +317,7 @@ test_run(struct prng *prng, struct vty *vty, const char *cmd, unsigned int edit_ printf(" '%s'\n", completions[j]); XFREE(MTYPE_TMP, completions[j]); } - XFREE(MTYPE_VECTOR_INDEX, completions); + XFREE(MTYPE_TMP, completions); } vty->node = cnode->node; diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index 1db3dca352..f15f051e69 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -828,8 +828,6 @@ command_generator (const char *text, int state) if (rl_end && isspace ((int) rl_line_buffer[rl_end - 1])) vector_set (vline, NULL); - if (matched) - XFREE (MTYPE_TMP, matched); matched = cmd_complete_command (vline, vty, &complete_status); cmd_free_strvec (vline); } @@ -837,6 +835,9 @@ command_generator (const char *text, int state) if (matched && matched[index]) return matched[index++]; + XFREE (MTYPE_TMP, matched); + matched = NULL; + return NULL; } -- 2.39.5