some more info originally from
https://github.com/Valloric/YouCompleteMe/issues/618#issuecomment-27265698:
@Valloric my real advice is that, they should run it,
as soon as this get fixed upstream,
this is a plain bug as can be checked in the vim thread.
I've debugged it a bit more and got more info,
I've figured out syntastic was related and indeed,
disabling it avoided the buggy situation, the thing is
that while tabbing a `:redraw` is issued from syntastic's `s:Redraw()`
and also, the displaying of the popup menu is issued through
the insert completion functionality. The mess happens in
`popupmnu.c`, where there's a global variable `pum_first`,
this pum_first gets changed both by the drawing issued by
insert completion and by a `:redraw` (from `s:Redraw()`)
that ends up calling `void pum_redraw()`.
At some point, because of this:
if (pum_first > pum_selected - context)
{
/* scroll down */
pum_first = pum_selected - context;
if (pum_first < 0)
pum_first = 0;
}
`pum_first` starts to get values greater than 0, and keeps
this value, once `pum_redraw` is called, the segmentation
fault situation is triggered as the `idx` variable used for
indexing an array in `pum_redraw` will start to index beyond
array bounds.
So, a lame workaround would be to avoid extra redraws that
ends up inherenting state from other popup menu drawing
until this state (the `pum_first` global variable) gets
reset to its default state.
I can only say this is messy, and can only blame Vim codebase.
--
--
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/groups/opt_out.