From: David Lamparter Date: Thu, 26 Jan 2017 20:57:24 +0000 (+0100) Subject: lib: clean up tab-completion memory counting X-Git-Tag: frr-3.0-branchpoint~58^2~4 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=66d29a54a1325217295d19243a5003b65f6ededd;p=matthieu%2Ffrr.git lib: clean up tab-completion memory counting Signed-off-by: David Lamparter --- 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; }