Mercurial > vim
changeset 31586:f36f920bad1a v9.0.1125
patch 9.0.1125: memory leak when using class functions
Commit: https://github.com/vim/vim/commit/ec8b74f7ab37ac83045c9eba723daf3ff8d62fc2
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 1 14:11:27 2023 +0000
patch 9.0.1125: memory leak when using class functions
Problem: Memory leak when using class functions.
Solution: Clear and free the array with class functions.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 01 Jan 2023 15:15:04 +0100 |
parents | d85a9fa468f2 |
children | 40f9cc5fc462 |
files | src/version.c src/vim9class.c |
diffstat | 2 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 */ /**/ + 1125, +/**/ 1124, /**/ 1123,
--- a/src/vim9class.c +++ b/src/vim9class.c @@ -975,6 +975,13 @@ class_unref(class_T *cl) } vim_free(cl->class_obj_members); + for (int i = 0; i < cl->class_class_function_count; ++i) + { + ufunc_T *uf = cl->class_class_functions[i]; + func_clear_free(uf, FALSE); + } + vim_free(cl->class_class_functions); + for (int i = 0; i < cl->class_obj_method_count; ++i) { ufunc_T *uf = cl->class_obj_methods[i];