Mercurial > vim
changeset 31525:f7c82a85e88a v9.0.1095
patch 9.0.1095: using freed memory when declaration fails
Commit: https://github.com/vim/vim/commit/6ef5471afa69a654888bc285a51a6035405d33a0
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 25 19:31:36 2022 +0000
patch 9.0.1095: using freed memory when declaration fails
Problem: Using freed memory when declaration fails. (Yegappan Lakshmanan)
Solution: After unreferencing an object set the reference to NULL.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 25 Dec 2022 20:45:04 +0100 |
parents | 1996a311ac70 |
children | 9759807cf1f3 |
files | src/testdir/test_vim9_class.vim src/typval.c src/version.c |
diffstat | 3 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -349,6 +349,22 @@ def Test_class_object_member_access() assert_equal('make = 123', c2.GetMake()) END v9.CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + + class MyCar + this.make: string + + def new(make_arg: string) + this.make = make_arg + enddef + endclass + + var c = MyCar.new("abc") + var c = MyCar.new("def") + END + v9.CheckScriptFailure(lines, 'E1041:') enddef def Test_class_member_access()