vim-patch:7.4.369

Problem:    Using freed memory when exiting while compiled with EXITFREE.
Solution:   Set curwin to NULL and check for that. (Dominique Pelle)

https://code.google.com/p/vim/source/detail?r=v7-4-369
This commit is contained in:
Shougo Matsushita 2014-09-16 19:32:25 +09:00
parent fd60b8ee7e
commit aa66f2487e
3 changed files with 7 additions and 3 deletions

View File

@ -4425,8 +4425,8 @@ linenr_T buf_delsign(
} }
/* When deleted the last sign needs to redraw the windows to remove the /* When deleted the last sign needs to redraw the windows to remove the
* sign column. */ * sign column. Not when curwin is NULL (this means we're exiting). */
if (buf->b_signlist == NULL) { if (buf->b_signlist != NULL && curwin != NULL) {
redraw_buf_later(buf, NOT_VALID); redraw_buf_later(buf, NOT_VALID);
changed_cline_bef_curs(); changed_cline_bef_curs();
} }

View File

@ -226,7 +226,7 @@ static int included_patches[] = {
//372, //372,
371, 371,
370, 370,
//369, 369,
368, 368,
367, 367,
//366, //366,

View File

@ -2001,6 +2001,10 @@ void win_free_all(void)
while (firstwin != NULL) while (firstwin != NULL)
(void)win_free_mem(firstwin, &dummy, NULL); (void)win_free_mem(firstwin, &dummy, NULL);
// No window should be used after this. Set curwin to NULL to crash
// instead of using freed memory.
curwin = NULL;
} }
#endif #endif