summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-10 22:11:16 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-10 22:11:16 +0200
commit7c0a2f367f2507669560b1a66423155c70d2e75b (patch)
tree7cd0523311a25f653497197abc1fa86ed62bcc79 /src/window.c
parentea3f2e7be447a8f0c4436869620f908de5e8ef1e (diff)
downloadvim-git-7c0a2f367f2507669560b1a66423155c70d2e75b.tar.gz
patch 7.4.2024v7.4.2024
Problem: More buf_valid() calls can be optimized. Solution: Use bufref_valid() instead.
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/window.c b/src/window.c
index c3cd7a233..b9e75d6df 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2340,6 +2340,9 @@ win_close(win_T *win, int free_buf)
*/
if (win->w_buffer != NULL)
{
+ bufref_T bufref;
+
+ set_bufref(&bufref, curbuf);
#ifdef FEAT_AUTOCMD
win->w_closing = TRUE;
#endif
@@ -2350,7 +2353,7 @@ win_close(win_T *win, int free_buf)
#endif
/* Make sure curbuf is valid. It can become invalid if 'bufhidden' is
* "wipe". */
- if (!buf_valid(curbuf))
+ if (!bufref_valid(&bufref))
curbuf = firstbuf;
}
@@ -6632,12 +6635,12 @@ restore_win(
* No autocommands will be executed. Use aucmd_prepbuf() if there are any.
*/
void
-switch_buffer(buf_T **save_curbuf, buf_T *buf)
+switch_buffer(bufref_T *save_curbuf, buf_T *buf)
{
# ifdef FEAT_AUTOCMD
block_autocmds();
# endif
- *save_curbuf = curbuf;
+ set_bufref(save_curbuf, curbuf);
--curbuf->b_nwindows;
curbuf = buf;
curwin->w_buffer = buf;
@@ -6648,17 +6651,17 @@ switch_buffer(buf_T **save_curbuf, buf_T *buf)
* Restore the current buffer after using switch_buffer().
*/
void
-restore_buffer(buf_T *save_curbuf)
+restore_buffer(bufref_T *save_curbuf)
{
# ifdef FEAT_AUTOCMD
unblock_autocmds();
# endif
/* Check for valid buffer, just in case. */
- if (buf_valid(save_curbuf))
+ if (bufref_valid(save_curbuf))
{
--curbuf->b_nwindows;
- curwin->w_buffer = save_curbuf;
- curbuf = save_curbuf;
+ curwin->w_buffer = save_curbuf->br_buf;
+ curbuf = save_curbuf->br_buf;
++curbuf->b_nwindows;
}
}