comparison src/evalwindow.c @ 26666:bbcbb3c13fba v8.2.3862

patch 8.2.3862: crash on exit with EXITFREE and using win_execute() Commit: https://github.com/vim/vim/commit/dab17a0689a2f31f69f428975f84b0c3c7ba3030 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 20 21:35:59 2021 +0000 patch 8.2.3862: crash on exit with EXITFREE and using win_execute() Problem: Crash on exit with EXITFREE and using win_execute(). Solution: Also save and restore tp_topframe. (issue https://github.com/vim/vim/issues/9374)
author Bram Moolenaar <Bram@vim.org>
date Mon, 20 Dec 2021 22:45:03 +0100
parents 72c394673e00
children c95a3f25b6b1
comparison
equal deleted inserted replaced
26665:5623a07d7104 26666:bbcbb3c13fba
1248 *save_curtab = curtab; 1248 *save_curtab = curtab;
1249 if (no_display) 1249 if (no_display)
1250 { 1250 {
1251 curtab->tp_firstwin = firstwin; 1251 curtab->tp_firstwin = firstwin;
1252 curtab->tp_lastwin = lastwin; 1252 curtab->tp_lastwin = lastwin;
1253 curtab->tp_topframe = topframe;
1253 curtab = tp; 1254 curtab = tp;
1254 firstwin = curtab->tp_firstwin; 1255 firstwin = curtab->tp_firstwin;
1255 lastwin = curtab->tp_lastwin; 1256 lastwin = curtab->tp_lastwin;
1257 topframe = curtab->tp_topframe;
1256 } 1258 }
1257 else 1259 else
1258 goto_tabpage_tp(tp, FALSE, FALSE); 1260 goto_tabpage_tp(tp, FALSE, FALSE);
1259 } 1261 }
1260 if (!win_valid(win)) 1262 if (!win_valid(win))
1292 { 1294 {
1293 if (no_display) 1295 if (no_display)
1294 { 1296 {
1295 curtab->tp_firstwin = firstwin; 1297 curtab->tp_firstwin = firstwin;
1296 curtab->tp_lastwin = lastwin; 1298 curtab->tp_lastwin = lastwin;
1299 curtab->tp_topframe = topframe;
1297 curtab = save_curtab; 1300 curtab = save_curtab;
1298 firstwin = curtab->tp_firstwin; 1301 firstwin = curtab->tp_firstwin;
1299 lastwin = curtab->tp_lastwin; 1302 lastwin = curtab->tp_lastwin;
1303 topframe = curtab->tp_topframe;
1300 } 1304 }
1301 else 1305 else
1302 goto_tabpage_tp(save_curtab, FALSE, FALSE); 1306 goto_tabpage_tp(save_curtab, FALSE, FALSE);
1303 } 1307 }
1304 if (win_valid(save_curwin)) 1308 if (win_valid(save_curwin))