mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
API: Refactor: Register/unregister created/destroyed tabpages
- Add the 'handle' field to `tabpage_T` - Add declare/implement functions for registering/unregistering/retrieving tabpages - Register/unregister tabpages when they are created/destroyed.
This commit is contained in:
parent
20848c4064
commit
5fdf854f78
@ -30,9 +30,11 @@ static uint64_t next_handle = 1;
|
||||
|
||||
HANDLE_IMPL(buf_T, buffer)
|
||||
HANDLE_IMPL(win_T, window)
|
||||
HANDLE_IMPL(tabpage_T, tabpage)
|
||||
|
||||
void handle_init()
|
||||
{
|
||||
HANDLE_INIT(buffer);
|
||||
HANDLE_INIT(window);
|
||||
HANDLE_INIT(tabpage);
|
||||
}
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
HANDLE_DECLS(buf_T, buffer)
|
||||
HANDLE_DECLS(win_T, window)
|
||||
HANDLE_DECLS(tabpage_T, tabpage)
|
||||
|
||||
void handle_init(void);
|
||||
|
||||
|
@ -738,6 +738,7 @@ struct diffblock_S {
|
||||
*/
|
||||
typedef struct tabpage_S tabpage_T;
|
||||
struct tabpage_S {
|
||||
uint64_t handle;
|
||||
tabpage_T *tp_next; /* next tabpage or NULL */
|
||||
frame_T *tp_topframe; /* topframe for the windows */
|
||||
win_T *tp_curwin; /* current window in this Tab page */
|
||||
|
@ -2845,6 +2845,7 @@ void win_init_size(void)
|
||||
static tabpage_T *alloc_tabpage(void)
|
||||
{
|
||||
tabpage_T *tp = xcalloc(1, sizeof(tabpage_T));
|
||||
handle_register_tabpage(tp);
|
||||
|
||||
/* init t: variables */
|
||||
tp->tp_vars = dict_alloc();
|
||||
@ -2859,6 +2860,7 @@ void free_tabpage(tabpage_T *tp)
|
||||
{
|
||||
int idx;
|
||||
|
||||
handle_unregister_tabpage(tp);
|
||||
diff_clear(tp);
|
||||
for (idx = 0; idx < SNAP_COUNT; ++idx)
|
||||
clear_snapshot(tp, idx);
|
||||
|
Loading…
Reference in New Issue
Block a user