在 2016年8月4日星期四 UTC+8上午3:05:11,Bram Moolenaar写道:
> Christian Brabandt wrote:
> 
> > On Mi, 03 Aug 2016, Christian Brabandt wrote:
> > 
> > > On Mi, 03 Aug 2016, Christian Brabandt wrote:
> > > > On Mi, 03 Aug 2016, Bram Moolenaar wrote:
> > > > > Christian Brabandt wrote:
> > > > > > Am 2016-08-02 23:05, schrieb Bram Moolenaar:
> > > > > > > Patch 7.4.2149
> > > > > > > Problem:    If a test leaves a window open a following test may 
> > > > > > > fail.
> > > > > > > Solution:   Always close extra windows after running a test.
> > > > > > > Files:      src/testdir/runtest.vim, src/testdir/test_popup.vim
> > > > > > 
> > > > > > I think, this patch broke the appveyor build:
> > > > > > https://ci.appveyor.com/project/chrisbra/vim/build/1670/job/l38go72qo1ucc694#L2247
> > > > > 
> > > > > Why would it break only there?  The tests pass for me.
> > > > 
> > > > I don't know. But if you go on history, you can see, that the failure 
> > > > started exactly with this patch (also happened at the win32-installer 
> > > > builds). 
> > > > 
> > > > I pushed the rebuild commit button, perhaps, that was just a temporary 
> > > > flaw?
> > > 
> > > Something is seriously broken. On windows, I can reproduce the problem.
> > > When the command :lhelpgrep quickfix has been executed and the location 
> > > list has been opened, w:quickfix_title is still ':lexpr ""'
> > > 
> > > 
> > > I'll try to debug this later.
> > 
> > I think, it is opening the locationlist of the wrong window.
> > However, I don't understand, why it only happens on Windows.
> > 
> > This patch fixes it for me:
> > diff -r ecc1173685b0 src/testdir/test_quickfix.vim
> > --- a/src/testdir/test_quickfix.vim     Tue Aug 02 23:15:07 2016 +0200
> > +++ b/src/testdir/test_quickfix.vim     Wed Aug 03 17:00:17 2016 +0200
> > @@ -407,6 +407,7 @@
> > 
> >  function Test_helpgrep()
> >    call s:test_xhelpgrep('c')
> > +  helpclose
> >    call s:test_xhelpgrep('l')
> >  endfunc
> 
> Thanks.  I do wonder why the behavior differs on Windows...
> 

Seems like somewhere in the heap was destroyed by an invalid memory accessing, 
which was caused by some old bugs long long ago both in unix build and windows 
build.

Some un-important variables in the heap had already been modified by accident 
in the previous releases, and they had not been noticed before.

As the code base is growing, heap structure is changing too, these old bugs 
become harmful. 

Issues are both in unix and windows, but the heap structures in unix and 
windows are different. It just didn't lead to serious consequences in unix.

If we have enough test, we may also find some strange behaviors caused by these 
bugs.

if so, something really bad
Just a guess, hope I am wrong.


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