Dominique Pelle wrote:

> On Mon, May 12, 2008 at 3:01 PM, Dominique Pelle
> <[EMAIL PROTECTED]> wrote:
> 
> > I observe a 100% reproducible internal error message
> > "E685: Internal error: func_unref()" with vim-7.1.298 when:
> >
> > - building vim with -DEXITFREE
> > - and using the NERD_tree.vim plugin
> >
> > It's a low priority bug since it only happens when building
> > with -DEXITFREE (which is a debug feature normally
> > disabled).
> >
> > Steps to reproduce:
> >
> > 1/ build vim with -DEXITFREE i.e. uncomment line
> >   "PROFILE_CFLAGS = -DEXITFREE"
> >   in vim7/src/Makefile
> >
> > 2/ install the NERD_tree.vim plugin available at:
> >  http://www.vim.org/scripts/script.php?script_id=1658
> >
> > 3/ run...
> >
> >    $ vim -c NERDTree -c qa
> >
> > ... and observe that vim reports many internal errors when exiting:
> >
> > Error detected while processing command line:
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > E685: Internal error: func_unref()
> > ...
> > ... etc, error message repeats 10877 times
> >
> > I have not found a way fix yet.
> >
> > I'm using vim-7.1.298 on Linux x86.
> >
> > -- Dominique
> 
> 
> I tried to debug it.  I found:
> 
> - one bug in delete_first_msg()  [message.c]:  when delete_first_msg()
>   is called and the list of message becomes empty, last_msg_hist
>   should be set to NULL.  Bug should only happen when Vim is
>   compiled with -DEXITFREE since the list of message is never
>   cleared otherwise.
> 
> - in eval_clear() [eval.c], free_all_functions() should be called I think
>   (not 100% sure) after garbage_collect() because garbage_collect()
>   uses hash of functions.  Again, this is only relevant if Vim is
>   compiled with -DEXITFREE.
> 
> After those 2 fixes, I no longer see the internal error message as
> described in the initial post.
> 
> Attached
> - fix_delete_first_msg.message.c.patch
> - fix_internal_error.eval.c.patch

Thanks.  I'll look into it later.

-- 
If an elephant is left tied to a parking meter, the parking fee has to be paid
just as it would for a vehicle.
                [real standing law in Florida, United States of America]

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui