Dominique Pelle wrote:
> Using Vim-7.3.475, I can reproduce a memory leak using
> the ':rv!' command when reading dictionary or list global
> variables i.e. with 'viminfo' containing ! (:help viminfo-!).
>
> Steps to reproduce:
>
> $ cat > leak.vim <<EOF
> set nocp
> set viminfo+=!
>
> let FOO=[]
> let BAR={'bar':1}
>
> wv! /tmp/foobar
>
> rv! /tmp/foobar
> rv! /tmp/foobar
> rv! /tmp/foobar
> EOF
>
> $ valgrind --leak-check=yes --log-file=vg.log vim -u NONE -S leak.vim
>
> Then exit Vim with :q and notice that log file vg.log contains the
> following leak:
>
> ==17285== 96 bytes in 6 blocks are definitely lost in loss record 70 of 95
> ==17285== at 0x4C241C3: malloc (vg_replace_malloc.c:195)
> ==17285== by 0x4D8AF9: lalloc (misc2.c:928)
> ==17285== by 0x4D8A18: alloc (misc2.c:827)
> ==17285== by 0x432D8D: eval_expr (eval.c:1548)
> ==17285== by 0x4542A9: read_viminfo_varlist (eval.c:22964)
> ==17285== by 0x458BC6: read_viminfo_up_to_marks (ex_cmds.c:2134)
> ==17285== by 0x4589FE: do_viminfo (ex_cmds.c:2053)
> ==17285== by 0x458444: read_viminfo (ex_cmds.c:1710)
> ==17285== by 0x478E3D: ex_viminfo (ex_docmd.c:11010)
> ==17285== by 0x46B583: do_one_cmd (ex_docmd.c:2668)
> ==17285== by 0x468D24: do_cmdline (ex_docmd.c:1122)
> ==17285== by 0x466BD1: do_source (ex_cmds2.c:3188)
>
> The number of blocks leaked (6) corresponds to the number
> of 'rv! /tmp/foo' commands in script (3) times the number of
> list and dictionary variables being read in viminfo file (2 in this
> example for FOO and BAR).
>
> Attached patch fixes the leak.
Thanks! I'll include it soon.
--
hundred-and-one symptoms of being an internet addict:
212. Your Internet group window has more icons than your Accessories window.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ 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