summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/eval.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/eval.c b/src/eval.c
index 6fa70c4f3..388727f18 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -198,6 +198,9 @@ struct ufunc
*/
static hashtab_T func_hashtab;
+/* The names of packages that once were loaded is remembered. */
+static garray_T ga_loaded = {0, 0, sizeof(char_u *), 4, NULL};
+
/* list heads for garbage collection */
static dict_T *first_dict = NULL; /* list of all dicts */
static list_T *first_list = NULL; /* list of all lists */
@@ -807,6 +810,9 @@ eval_clear()
free_all_functions();
hash_clear(&func_hashtab);
+ /* autoloaded script names */
+ ga_clear_strings(&ga_loaded);
+
/* unreferenced lists and dicts */
(void)garbage_collect();
}
@@ -19098,10 +19104,11 @@ free_all_functions()
function_exists(name)
char_u *name;
{
- char_u *p = name;
+ char_u *nm = name;
+ char_u *p;
int n = FALSE;
- p = trans_function_name(&p, FALSE, TFN_INT|TFN_QUIET, NULL);
+ p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET, NULL);
if (p != NULL)
{
if (builtin_function(p))
@@ -19309,9 +19316,6 @@ prof_self_cmp(s1, s2)
#endif
-/* The names of packages that once were loaded is remembered. */
-static garray_T ga_loaded = {0, 0, sizeof(char_u *), 4, NULL};
-
/*
* If "name" has a package name try autoloading the script for it.
* Return TRUE if a package was loaded.