diff options
| author | James McCoy <jamessan@jamessan.com> | 2016-11-15 16:53:07 -0500 | 
|---|---|---|
| committer | James McCoy <jamessan@jamessan.com> | 2016-12-28 14:57:39 -0500 | 
| commit | 03ed7e1ebaf7f0934b176c71949a77a3fe2291fb (patch) | |
| tree | 2765f93413fb968cdb697b290ee645fc64f759f8 /src | |
| parent | c4c894b2fada371c424e55d26174110b9069b5f8 (diff) | |
| download | rneovim-03ed7e1ebaf7f0934b176c71949a77a3fe2291fb.tar.gz rneovim-03ed7e1ebaf7f0934b176c71949a77a3fe2291fb.tar.bz2 rneovim-03ed7e1ebaf7f0934b176c71949a77a3fe2291fb.zip  | |
vim-patch:7.4.2272
Problem:    getbufinfo(), getwininfo() and gettabinfo() are inefficient.
Solution:   Instead of making a copy of the variables dictionary, use a
            reference.
https://github.com/vim/vim/commit/9f8187c335b4fb07be9095dfdd0fc52670ba3c3f
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/eval.c | 21 | ||||
| -rw-r--r-- | src/nvim/version.c | 2 | 
2 files changed, 7 insertions, 16 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 6dee5ed336..59d1132c79 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -9880,11 +9880,8 @@ static dict_T *get_buffer_info(buf_T *buf)                    buf->b_ml.ml_mfp != NULL && buf->b_nwindows == 0,                    NULL); -  // Copy buffer variables -  dict_T *vars = dict_copy(NULL, buf->b_vars, true, 0); -  if (vars != NULL) { -    dict_add_dict(dict, "variables", vars); -  } +  // Get a reference to buffer variables +  dict_add_dict(dict, "variables", buf->b_vars);    // Copy buffer options    dict_T *opts = get_winbuf_options(true); @@ -10806,11 +10803,8 @@ static dict_T *get_tabpage_info(tabpage_T *tp, int tp_idx)    }    dict_add_list(dict, "windows", l); -  // Copy tabpage variables -  dict_T *vars = dict_copy(NULL, tp->tp_vars, true, 0); -  if (vars != NULL) { -    dict_add_dict(dict, "variables", vars); -  } +  // Make a reference to tabpage variables +  dict_add_dict(dict, "variables", tp->tp_vars);    return dict;  } @@ -10910,11 +10904,8 @@ static dict_T *get_win_info(win_T *wp, short tpnr, short winnr)                    (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL),                    NULL); -  // Copy window variables -  dict_T *vars = dict_copy(NULL, wp->w_vars, true, 0); -  if (vars != NULL) { -    dict_add_dict(dict, "variables", vars); -  } +  // Make a reference to window variables +  dict_add_dict(dict, "variables", wp->w_vars);    // Copy window options    dict_T *opts = get_winbuf_options(false); diff --git a/src/nvim/version.c b/src/nvim/version.c index 21fa7253ba..4ad4c82928 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -168,7 +168,7 @@ static int included_patches[] = {    // 2275,    2274,    // 2273, -  // 2272, +  2272,    // 2271 NA    // 2270 NA    // 2269,  | 
