mirror of
https://github.com/neovim/neovim.git
synced 2025-09-24 12:08:33 +00:00
refactor(eval): use arena when converting typvals to Object
Note: this contains two _temporary_ changes which can be reverted once the Arena vs no-Arena distinction in API wrappers has been removed. Both nlua_push_Object and object_to_vim_take_luaref() has been changed to take the object argument as a pointer. This is not going to be necessary once these are only used with arena (or not at all) allocated Objects. The object_to_vim() variant which leaves luaref untouched might need to stay for a little longer.
This commit is contained in:
@@ -362,7 +362,7 @@ void buffer_set_line_slice(Buffer buffer, Integer start, Integer end, Boolean in
|
||||
///
|
||||
/// @warning It may return nil if there was no previous value
|
||||
/// or if previous value was `v:null`.
|
||||
Object buffer_set_var(Buffer buffer, String name, Object value, Error *err)
|
||||
Object buffer_set_var(Buffer buffer, String name, Object value, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
buf_T *buf = find_buffer_by_handle(buffer, err);
|
||||
@@ -371,7 +371,7 @@ Object buffer_set_var(Buffer buffer, String name, Object value, Error *err)
|
||||
return NIL;
|
||||
}
|
||||
|
||||
return dict_set_var(buf->b_vars, name, value, false, true, err);
|
||||
return dict_set_var(buf->b_vars, name, value, false, true, arena, err);
|
||||
}
|
||||
|
||||
/// Removes a buffer-scoped (b:) variable
|
||||
@@ -382,7 +382,7 @@ Object buffer_set_var(Buffer buffer, String name, Object value, Error *err)
|
||||
/// @param name Variable name
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return Old value
|
||||
Object buffer_del_var(Buffer buffer, String name, Error *err)
|
||||
Object buffer_del_var(Buffer buffer, String name, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
buf_T *buf = find_buffer_by_handle(buffer, err);
|
||||
@@ -391,7 +391,7 @@ Object buffer_del_var(Buffer buffer, String name, Error *err)
|
||||
return NIL;
|
||||
}
|
||||
|
||||
return dict_set_var(buf->b_vars, name, NIL, true, true, err);
|
||||
return dict_set_var(buf->b_vars, name, NIL, true, true, arena, err);
|
||||
}
|
||||
|
||||
/// Sets a window-scoped (w:) variable
|
||||
@@ -406,7 +406,7 @@ Object buffer_del_var(Buffer buffer, String name, Error *err)
|
||||
///
|
||||
/// @warning It may return nil if there was no previous value
|
||||
/// or if previous value was `v:null`.
|
||||
Object window_set_var(Window window, String name, Object value, Error *err)
|
||||
Object window_set_var(Window window, String name, Object value, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
win_T *win = find_window_by_handle(window, err);
|
||||
@@ -415,7 +415,7 @@ Object window_set_var(Window window, String name, Object value, Error *err)
|
||||
return NIL;
|
||||
}
|
||||
|
||||
return dict_set_var(win->w_vars, name, value, false, true, err);
|
||||
return dict_set_var(win->w_vars, name, value, false, true, arena, err);
|
||||
}
|
||||
|
||||
/// Removes a window-scoped (w:) variable
|
||||
@@ -426,7 +426,7 @@ Object window_set_var(Window window, String name, Object value, Error *err)
|
||||
/// @param name variable name
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return Old value
|
||||
Object window_del_var(Window window, String name, Error *err)
|
||||
Object window_del_var(Window window, String name, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
win_T *win = find_window_by_handle(window, err);
|
||||
@@ -435,7 +435,7 @@ Object window_del_var(Window window, String name, Error *err)
|
||||
return NIL;
|
||||
}
|
||||
|
||||
return dict_set_var(win->w_vars, name, NIL, true, true, err);
|
||||
return dict_set_var(win->w_vars, name, NIL, true, true, arena, err);
|
||||
}
|
||||
|
||||
/// Sets a tab-scoped (t:) variable
|
||||
@@ -450,7 +450,7 @@ Object window_del_var(Window window, String name, Error *err)
|
||||
///
|
||||
/// @warning It may return nil if there was no previous value
|
||||
/// or if previous value was `v:null`.
|
||||
Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
|
||||
Object tabpage_set_var(Tabpage tabpage, String name, Object value, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
tabpage_T *tab = find_tab_by_handle(tabpage, err);
|
||||
@@ -459,7 +459,7 @@ Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
|
||||
return NIL;
|
||||
}
|
||||
|
||||
return dict_set_var(tab->tp_vars, name, value, false, true, err);
|
||||
return dict_set_var(tab->tp_vars, name, value, false, true, arena, err);
|
||||
}
|
||||
|
||||
/// Removes a tab-scoped (t:) variable
|
||||
@@ -470,7 +470,7 @@ Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
|
||||
/// @param name Variable name
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return Old value
|
||||
Object tabpage_del_var(Tabpage tabpage, String name, Error *err)
|
||||
Object tabpage_del_var(Tabpage tabpage, String name, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
tabpage_T *tab = find_tab_by_handle(tabpage, err);
|
||||
@@ -479,7 +479,7 @@ Object tabpage_del_var(Tabpage tabpage, String name, Error *err)
|
||||
return NIL;
|
||||
}
|
||||
|
||||
return dict_set_var(tab->tp_vars, name, NIL, true, true, err);
|
||||
return dict_set_var(tab->tp_vars, name, NIL, true, true, arena, err);
|
||||
}
|
||||
|
||||
/// @deprecated
|
||||
@@ -487,18 +487,18 @@ Object tabpage_del_var(Tabpage tabpage, String name, Error *err)
|
||||
/// @warning May return nil if there was no previous value
|
||||
/// OR if previous value was `v:null`.
|
||||
/// @return Old value or nil if there was no previous value.
|
||||
Object vim_set_var(String name, Object value, Error *err)
|
||||
Object vim_set_var(String name, Object value, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
return dict_set_var(&globvardict, name, value, false, true, err);
|
||||
return dict_set_var(&globvardict, name, value, false, true, arena, err);
|
||||
}
|
||||
|
||||
/// @deprecated
|
||||
/// @see nvim_del_var
|
||||
Object vim_del_var(String name, Error *err)
|
||||
Object vim_del_var(String name, Arena *arena, Error *err)
|
||||
FUNC_API_DEPRECATED_SINCE(1)
|
||||
{
|
||||
return dict_set_var(&globvardict, name, NIL, true, true, err);
|
||||
return dict_set_var(&globvardict, name, NIL, true, true, arena, err);
|
||||
}
|
||||
|
||||
static int64_t convert_index(int64_t index)
|
||||
|
Reference in New Issue
Block a user