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).

FWIW, I applied the patch of #1046 to 8.0.0176 to see if there was a
difference, and found that it worked fine.

It appears to me that a big difference between 8.0.0190 and #1046 is the
usage of the local variable cmplen defined at tag.c:1320.

#1046 defines a new variable of the same name at line 2215 of the patched
tag.c, although it shadows cmplen in the outer scope.

On the other hand, 8.0.0190 does away with the one introduced by #1046.

Does this make sense?

Best regards,
Kazunobu Kuriyama

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