summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/vector.c14
-rw-r--r--lib/vector.h3
-rw-r--r--lib/vty.c4
-rw-r--r--tests/test-commands.c2
-rw-r--r--vtysh/vtysh.c5
5 files changed, 6 insertions, 22 deletions
diff --git a/lib/vector.c b/lib/vector.c
index 03ad3171d..0b1d5d504 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
@@ -44,18 +44,6 @@ vector_init (unsigned int size)
}
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)
{
XFREE (MTYPE_VECTOR_INDEX, v->index);
diff --git a/lib/vector.h b/lib/vector.h
index d8f4c7860..28f4ad320 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 9413d003e..e70079c52 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 c0bc39f88..c86ffc589 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 1db3dca35..f15f051e6 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;
}