Hi,

On Mon, Apr 11, 2016 at 11:37 AM, LCD 47 <[email protected]> wrote:
> On 11 April 2016, Christian Brabandt <[email protected]> wrote:
>> Am 2016-04-11 08:20, schrieb LCD 47:
>> > On 19 March 2016, Dominique Pellé <[email protected]> wrote:
>> >> Hi LCD,
>> >>
>> >> If you can still reproduce this bug, can you check
>> >> whether recent patch 7.4.1592 fixes it?
>> >>
>> >> patch 7.4.1592
>> >> Problem:    Quickfix code using memory after being freed. (Dominique
>> >> Pelle)
>> >> Solution:   Detect that the window was closed. (Hirohito Higashi)
>> >
>> > (Context moved below the signature)
>> >
>> >     Hi Dominique,
>> >
>> >     I think I now have a better understanding of what was going on
>> > in my report.  Your patch fixes the crash, but there might still be
>> > a deeper problem with jumping from quickfix lists.
>> >
>> >     The crash scenario was something like this:
>> >
>> > (1) .ll from a loclist
>> > (2) the target file for .ll had a BufEnter autocmd
>> > (3) the BufEnter set a different loclist for the same window
>> > (4) .ll mixed data from the old and new loclists.
>> >
>> >     Your patch adds a safeguard against the loclist going away from
>> > under .ll's feet, but the fact that an autocmd can happen in the
>> > middle of the operation is still a bug, I think.
>>
>> Is there an easy way to reproduce the issue? Perhaps, cloning as
>> github repository with mandatory setup files?
>
>     You don't understand, there is nothing to reporduce (not yet
> anyway).  The issue I reported way back was fixed by patch 1592, and
> by a patch to syntastic.  However, I claim that the bigger picture of
> quickfix is _still_ wrong.
>
>     Namely, autocmds can occur in the middle of quickfix commands.  I
> don't have any use case to show what can break that way, but it's surely
> obvious that this is a bad idea?
>

The above mentioned patch checks whether the current quickfix/location
list entry is still valid after opening a buffer (assuming this event triggered
an autocmd that changed the quickfix/location list). If the entry is no longer
valid, then the operation is aborted. This should gracefully handle this
condition.

>
> Shouldn't autocmds be delayed until quickfix commands are finished?
>

No. Jumping to an entry in the location/quickfix list may trigger
buffer, window and tab enter/leave autocmds. Delaying these autocmd events
will break functionality that depends on these events.

- Yegappan

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