diff options
author | Bram Moolenaar <Bram@vim.org> | 2023-01-02 21:04:04 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-01-02 21:04:04 +0000 |
commit | e83c133eb900898c39e6935a5d569308ff882342 (patch) | |
tree | 7d93894d5da7b394070dcd6a83b6393e9b41e055 | |
parent | 03ff0c66810492853291311e9e11a75b92cdcb8a (diff) |
patch 9.0.1136: memory leak when getting class member type from exprv9.0.1136
Problem: Memory leak when getting class member type from expr.
Solution: Clear the expression result.
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9class.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/version.c b/src/version.c index 72493e3c1f..ab0c923176 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1136, +/**/ 1135, /**/ 1134, diff --git a/src/vim9class.c b/src/vim9class.c index e764f7088f..2717a7905a 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -99,8 +99,11 @@ parse_member( int res = eval0(expr, &tv, eap, &evalarg); if (res == OK) + { type = typval2type(&tv, get_copyID(), type_list, TVTT_DO_MEMBER); + clear_tv(&tv); + } if (type == NULL) { semsg(_(e_cannot_get_object_member_type_from_initializer_str), |