James McCoy wrote:

> On Jan 16, 2017 05:03, "Kazunobu Kuriyama" <[email protected]>
> wrote:
> 
> 2017-01-16 0:53 GMT+09:00 Bram Moolenaar <[email protected]>:
> 
> >
> > Patch 8.0.0190
> > Summary:    finding duplicate tags uses a slow linear search
> > Problem:    Detecting duplicate tags uses a slow linear search.
> > Solution:   Use a much faster hash table solution. (James McCoy, closes
> > #1046)
> >             But don't add hi_keylen, it makes hash tables 50% bigger.
> > Files:      src/tag.c
> >
> >
> With this patch, CTRL-] in normal mode, or :tag, sometimes fails to work
> for me.
> 
> For example, go to vim/src/ and open vim there.  Do ":make tags" and ":edit
> gui.c".  Place the cursor at gui_attempt_start() at line 110 and press
> CTRL-].
> 
> Then I got either of them, depending on circumstances:
> 
> (1) no response
> (2) an error message: E429: File "tags^A^Agui_attempt_start^
> Igui.c^I/^gui_attempt_start(void)$/ead_ref" does not exist (N.B. The
> substring after $/ often varies).
> (3) segfault
> 
> Those clearly indicate that memory corruption takes place somewhere
> (Therefore, I believe the procedure above is not necessarily useful to
> reproduce the issue for everyone).
> 
> 
> This should be fixed by PR #1387.

Thanks for pinpointing the problem.  However, having a NUL at the start
means duplicate tags are not found.  A better solution is to make sure
the first byte is never NUL.

But I also want to write a test that detects the problem.  Looks like it
requires a static item in the current file.

-- 
Facepalm statement #4: "3000 year old graves?  That's not possible, it's only
2014!"

 /// 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

--- 
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].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui