Patch 9.0.0557
Problem:    Valgrind reports possibly leaked memory.
Solution:   Move the problematic test function to the "fails" test file to
            avoid obscuring real memory leaks.
Files:      src/testdir/test_vim9_func.vim, src/testdir/test_vim9_fails.vim


*** ../vim-9.0.0556/src/testdir/test_vim9_func.vim      2022-09-23 
12:44:19.795794418 +0100
--- src/testdir/test_vim9_func.vim      2022-09-23 16:08:50.353624704 +0100
***************
*** 3532,3565 ****
    v9.CheckDefAndScriptSuccess(lines)
  enddef
  
- " Using "idx" from a legacy global function does not work.
- " This caused a crash when called from legacy context.
- func Test_partial_call_fails()
-   let lines =<< trim END
-       vim9script
- 
-       var l = ['a', 'b', 'c']
-       def Iter(container: any): any
-         var idx = -1
-         var obj = {state: container}
-         def g:NextItem__(self: dict<any>): any
-           ++idx
-           return self.state[idx]
-         enddef
-         obj.__next__ = function('g:NextItem__', [obj])
-         return obj
-       enddef
- 
-       var it = Iter(l)
-       echo it.__next__()
-   END
-   call writefile(lines, 'XpartialCall', 'D')
-   try
-     source XpartialCall
-   catch /E1248:/
-   endtry
- endfunc
- 
  def Test_cmd_modifier()
    tab echo '0'
    v9.CheckDefFailure(['5tab echo 3'], 'E16:')
--- 3532,3537 ----
*** ../vim-9.0.0556/src/testdir/test_vim9_fails.vim     2021-12-04 
14:58:15.000000000 +0000
--- src/testdir/test_vim9_fails.vim     2022-09-23 15:54:49.332740801 +0100
***************
*** 26,28 ****
--- 26,62 ----
    endif
  enddef
  
+ " Using "idx" from a legacy global function does not work.
+ " This caused a crash when called from legacy context.
+ " This creates a dict that contains a partial that refers to the dict, causing
+ " valgrind to report "possibly leaked memory".
+ func Test_partial_call_fails()
+   let lines =<< trim END
+       vim9script
+ 
+       var l = ['a', 'b', 'c']
+       def Iter(container: any): any
+         var idx = -1
+         var obj = {state: container}
+         def g:NextItem__(self: dict<any>): any
+           ++idx
+           return self.state[idx]
+         enddef
+         obj.__next__ = function('g:NextItem__', [obj])
+         return obj
+       enddef
+ 
+       var it = Iter(l)
+       echo it.__next__()
+   END
+   call writefile(lines, 'XpartialCall', 'D')
+   let caught = 'no'
+   try
+     source XpartialCall
+   catch /E1248:/
+     let caught = 'yes'
+   endtry
+   call assert_equal('yes', caught)
+   delfunc g:NextItem__
+ endfunc
+ 
*** ../vim-9.0.0556/src/version.c       2022-09-23 13:27:47.930575182 +0100
--- src/version.c       2022-09-23 15:48:12.562838114 +0100
***************
*** 701,702 ****
--- 701,704 ----
  {   /* Add new patch number below this line */
+ /**/
+     557,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
142. You dream about creating the world's greatest web site.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20220923151619.CE5BC1C0639%40moolenaar.net.

Raspunde prin e-mail lui