There are many format variables now so allocating all the default ones

each time a tree is created is too expensive. Instead, convert them all
into callbacks and put them in a static table so they only allocate on
demand. The tree remains for the moment for extra (non-default)
variables added by for example copy mode or popups. Also reduce
expensive calls to localtime_r/strftime. GitHub issue 2253.
This commit is contained in:
nicm
2021-02-22 07:09:06 +00:00
parent 8986c8dfcd
commit e858270006
4 changed files with 2050 additions and 479 deletions

View File

@ -63,17 +63,6 @@ static u_int next_window_pane_id;
static u_int next_window_id;
static u_int next_active_point;
/* List of window modes. */
const struct window_mode *all_window_modes[] = {
&window_buffer_mode,
&window_client_mode,
&window_clock_mode,
&window_copy_mode,
&window_tree_mode,
&window_view_mode,
NULL
};
struct window_pane_input_data {
struct cmdq_item *item;
u_int wp;