diff src/testdir/test_vim9_disassemble.vim @ 22541:7d6ba4204f66 v8.2.1819

patch 8.2.1819: Vim9: Memory leak when using a closure Commit: https://github.com/vim/vim/commit/85d5e2b723e6fc233e53252dd5c523944146fbc2 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 10 14:13:01 2020 +0200 patch 8.2.1819: Vim9: Memory leak when using a closure Problem: Vim9: Memory leak when using a closure. Solution: Compute the mininal refcount in the funcstack. Reenable disabled tests.
author Bram Moolenaar <Bram@vim.org>
date Sat, 10 Oct 2020 14:15:04 +0200
parents 49f6201f79a3
children 6589dae9696c
line wrap: on
line diff
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -436,42 +436,42 @@ def Test_disassemble_call()
         res)
 enddef
 
-" TODO: fix memory leak and enable again
-"def s:CreateRefs()
-"  var local = 'a'
-"  def Append(arg: string)
-"    local ..= arg
-"  enddef
-"  g:Append = Append
-"  def Get(): string
-"    return local
-"  enddef
-"  g:Get = Get
-"enddef
-"
-"def Test_disassemble_closure()
-"  CreateRefs()
-"  var res = execute('disass g:Append')
-"  assert_match('<lambda>\d\_s*' ..
-"        'local ..= arg\_s*' ..
-"        '\d LOADOUTER $0\_s*' ..
-"        '\d LOAD arg\[-1\]\_s*' ..
-"        '\d CONCAT\_s*' ..
-"        '\d STOREOUTER $0\_s*' ..
-"        '\d PUSHNR 0\_s*' ..
-"        '\d RETURN',
-"        res)
-"
-"  res = execute('disass g:Get')
-"  assert_match('<lambda>\d\_s*' ..
-"        'return local\_s*' ..
-"        '\d LOADOUTER $0\_s*' ..
-"        '\d RETURN',
-"        res)
-"
-"  unlet g:Append
-"  unlet g:Get
-"enddef
+
+def s:CreateRefs()
+  var local = 'a'
+  def Append(arg: string)
+    local ..= arg
+  enddef
+  g:Append = Append
+  def Get(): string
+    return local
+  enddef
+  g:Get = Get
+enddef
+
+def Test_disassemble_closure()
+  CreateRefs()
+  var res = execute('disass g:Append')
+  assert_match('<lambda>\d\_s*' ..
+        'local ..= arg\_s*' ..
+        '\d LOADOUTER $0\_s*' ..
+        '\d LOAD arg\[-1\]\_s*' ..
+        '\d CONCAT\_s*' ..
+        '\d STOREOUTER $0\_s*' ..
+        '\d PUSHNR 0\_s*' ..
+        '\d RETURN',
+        res)
+
+  res = execute('disass g:Get')
+  assert_match('<lambda>\d\_s*' ..
+        'return local\_s*' ..
+        '\d LOADOUTER $0\_s*' ..
+        '\d RETURN',
+        res)
+
+  unlet g:Append
+  unlet g:Get
+enddef
 
 
 def EchoArg(arg: string): string