From a893194d91a2942d4d54085d746ed137a9251b69 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 28 Sep 2019 17:25:10 +0200 Subject: [PATCH] patch 8.1.2095: leaking memory when getting item from dict Problem: Leaking memory when getting item from dict. Solution: Also free the key when not evaluating. --- src/dict.c | 2 +- src/version.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dict.c b/src/dict.c index 649a7da71c..d26356928b 100644 --- a/src/dict.c +++ b/src/dict.c @@ -822,7 +822,6 @@ dict_get_tv(char_u **arg, typval_T *rettv, int evaluate, int literal) goto failret; } item = dictitem_alloc(key); - clear_tv(&tvkey); if (item != NULL) { item->di_tv = tv; @@ -831,6 +830,7 @@ dict_get_tv(char_u **arg, typval_T *rettv, int evaluate, int literal) dictitem_free(item); } } + clear_tv(&tvkey); if (**arg == '}') break; diff --git a/src/version.c b/src/version.c index 369807aa51..32ddda81b7 100644 --- a/src/version.c +++ b/src/version.c @@ -757,6 +757,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2095, /**/ 2094, /**/