Mercurial > vim
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)) |