Christian Brabandt wrote: > On So, 25 Jun 2017, Bram Moolenaar wrote: > > > > > Patch 8.0.0678 > > Problem: When 'equalalways' is set and closing a window in a separate > > frame, not all window sizes are adjusted. (Glacambre) > > Solution: Resize all windows if the new current window is not in the same > > frame as the closed window. (closes #1707) > > Files: src/window.c, src/testdir/test_window_cmd.vim > > > if (p_ea && (*p_ead == 'b' || *p_ead == dir)) > > ! /* If the frame of the closed window contains the new current window, > > ! * only resize that frame. Otherwise resize all windows. */ > > ! win_equal(curwin, > > ! curwin->w_frame->fr_parent == win_frame->fr_parent, dir); > > This cannot be completely correct. win_frame->fr_parent is already freed > at window.c:2424 at win_free_mem(), so here we are accessing freed > memory and I think this is the reason for the build failures at travis > and appveyor. > > How about the attached patch, which delays freeing the framepointer in > case of 'equalalways'?
Just noticed the test failure. Good that it catches this mistake. We only need the original frame pointer to compare against. The mistake was to get the parent only later. That should work as well and is a lot simpler. -- >From "know your smileys": ~#:-( I just washed my hair, and I can't do nuthin' with it. /// 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.
