comparison 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
comparison
equal deleted inserted replaced
22540:f0fd5cb81663 22541:7d6ba4204f66
434 '\d\+ PUSHS "yes"\_s*' .. 434 '\d\+ PUSHS "yes"\_s*' ..
435 '\d\+ RETURN', 435 '\d\+ RETURN',
436 res) 436 res)
437 enddef 437 enddef
438 438
439 " TODO: fix memory leak and enable again 439
440 "def s:CreateRefs() 440 def s:CreateRefs()
441 " var local = 'a' 441 var local = 'a'
442 " def Append(arg: string) 442 def Append(arg: string)
443 " local ..= arg 443 local ..= arg
444 " enddef 444 enddef
445 " g:Append = Append 445 g:Append = Append
446 " def Get(): string 446 def Get(): string
447 " return local 447 return local
448 " enddef 448 enddef
449 " g:Get = Get 449 g:Get = Get
450 "enddef 450 enddef
451 " 451
452 "def Test_disassemble_closure() 452 def Test_disassemble_closure()
453 " CreateRefs() 453 CreateRefs()
454 " var res = execute('disass g:Append') 454 var res = execute('disass g:Append')
455 " assert_match('<lambda>\d\_s*' .. 455 assert_match('<lambda>\d\_s*' ..
456 " 'local ..= arg\_s*' .. 456 'local ..= arg\_s*' ..
457 " '\d LOADOUTER $0\_s*' .. 457 '\d LOADOUTER $0\_s*' ..
458 " '\d LOAD arg\[-1\]\_s*' .. 458 '\d LOAD arg\[-1\]\_s*' ..
459 " '\d CONCAT\_s*' .. 459 '\d CONCAT\_s*' ..
460 " '\d STOREOUTER $0\_s*' .. 460 '\d STOREOUTER $0\_s*' ..
461 " '\d PUSHNR 0\_s*' .. 461 '\d PUSHNR 0\_s*' ..
462 " '\d RETURN', 462 '\d RETURN',
463 " res) 463 res)
464 " 464
465 " res = execute('disass g:Get') 465 res = execute('disass g:Get')
466 " assert_match('<lambda>\d\_s*' .. 466 assert_match('<lambda>\d\_s*' ..
467 " 'return local\_s*' .. 467 'return local\_s*' ..
468 " '\d LOADOUTER $0\_s*' .. 468 '\d LOADOUTER $0\_s*' ..
469 " '\d RETURN', 469 '\d RETURN',
470 " res) 470 res)
471 " 471
472 " unlet g:Append 472 unlet g:Append
473 " unlet g:Get 473 unlet g:Get
474 "enddef 474 enddef
475 475
476 476
477 def EchoArg(arg: string): string 477 def EchoArg(arg: string): string
478 return arg 478 return arg
479 enddef 479 enddef