summaryrefslogtreecommitdiffstats
path: root/src/evalbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/evalbuffer.c')
-rw-r--r--src/evalbuffer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/evalbuffer.c b/src/evalbuffer.c
index 52662a6533..82a10d675c 100644
--- a/src/evalbuffer.c
+++ b/src/evalbuffer.c
@@ -109,9 +109,12 @@ find_win_for_curbuf(void)
{
wininfo_T *wip;
+ // The b_wininfo list should have the windows that recently contained the
+ // buffer, going over this is faster than going over all the windows.
+ // Do check the buffer is still there.
FOR_ALL_BUF_WININFO(curbuf, wip)
{
- if (wip->wi_win != NULL)
+ if (wip->wi_win != NULL && wip->wi_win->w_buffer == curbuf)
{
curwin = wip->wi_win;
break;