mirror of
https://github.com/tmux/tmux.git
synced 2025-11-03 00:06:07 +00:00
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:
3
tmux.h
3
tmux.h
@@ -1944,7 +1944,7 @@ char *paste_make_sample(struct paste_buffer *);
|
||||
#define FORMAT_WINDOW 0x40000000U
|
||||
struct format_tree;
|
||||
struct format_modifier;
|
||||
typedef char *(*format_cb)(struct format_tree *);
|
||||
typedef void *(*format_cb)(struct format_tree *);
|
||||
const char *format_skip(const char *, const char *);
|
||||
int format_true(const char *);
|
||||
struct format_tree *format_create(struct client *, struct cmdq_item *, int,
|
||||
@@ -2713,7 +2713,6 @@ void screen_alternate_off(struct screen *, struct grid_cell *, int);
|
||||
/* window.c */
|
||||
extern struct windows windows;
|
||||
extern struct window_pane_tree all_window_panes;
|
||||
extern const struct window_mode *all_window_modes[];
|
||||
int window_cmp(struct window *, struct window *);
|
||||
RB_PROTOTYPE(windows, window, entry, window_cmp);
|
||||
int winlink_cmp(struct winlink *, struct winlink *);
|
||||
|
||||
Reference in New Issue
Block a user