summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evalfunc.c9
-rw-r--r--src/version.c2
2 files changed, 4 insertions, 7 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 76f1125a1..7368ba284 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -9324,10 +9324,8 @@ f_readdir(typval_T *argvars, typval_T *rettv)
}
#endif
- rettv->vval.v_list = list_alloc();
- if (!failed && rettv->vval.v_list != NULL)
+ if (!failed && rettv->vval.v_list != NULL && ga.ga_len > 0)
{
- ++rettv->vval.v_list->lv_refcount;
sort_strings((char_u **)ga.ga_data, ga.ga_len);
for (i = 0; i < ga.ga_len; i++)
{
@@ -9335,10 +9333,7 @@ f_readdir(typval_T *argvars, typval_T *rettv)
list_append_string(rettv->vval.v_list, p, -1);
}
}
- for (i = 0; i < ga.ga_len; i++)
- vim_free(((char_u **)ga.ga_data)[i]);
-
- ga_clear(&ga);
+ ga_clear_strings(&ga);
}
/*
diff --git a/src/version.c b/src/version.c
index b08b22c10..0b9a5dfa2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1186,
+/**/
1185,
/**/
1184,