aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/context.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-02-15 11:10:45 +0100
committerGitHub <noreply@github.com>2024-02-15 11:10:45 +0100
commitc6f7419420895490edd24dddf3e0f4c6f3f52c6f (patch)
tree2459531b83b937b6678ee7141badc27d0a331c29 /src/nvim/context.c
parent0a51e7626a95a068c7bb00d0da28a701fed758da (diff)
parentd60412b18e4e21f301baa2ac3f3fb7be89655e4b (diff)
downloadrneovim-c6f7419420895490edd24dddf3e0f4c6f3f52c6f.tar.gz
rneovim-c6f7419420895490edd24dddf3e0f4c6f3f52c6f.tar.bz2
rneovim-c6f7419420895490edd24dddf3e0f4c6f3f52c6f.zip
Merge pull request #27460 from bfredl/merarena
refactor(eval): use arena when converting typvals to Object
Diffstat (limited to 'src/nvim/context.c')
-rw-r--r--src/nvim/context.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/nvim/context.c b/src/nvim/context.c
index 7ce906b244..95e2618f62 100644
--- a/src/nvim/context.c
+++ b/src/nvim/context.c
@@ -296,7 +296,7 @@ static inline void ctx_restore_funcs(Context *ctx)
/// @param[in] sbuf msgpack_sbuffer to convert.
///
/// @return readfile()-style array representation of "sbuf".
-static inline Array sbuf_to_array(msgpack_sbuffer sbuf)
+static inline Array sbuf_to_array(msgpack_sbuffer sbuf, Arena *arena)
{
list_T *const list = tv_list_alloc(kListLenMayKnow);
tv_list_append_string(list, "", 0);
@@ -310,7 +310,7 @@ static inline Array sbuf_to_array(msgpack_sbuffer sbuf)
.vval.v_list = list
};
- Array array = vim_to_object(&list_tv).data.array;
+ Array array = vim_to_object(&list_tv, arena, false).data.array;
tv_clear(&list_tv);
return array;
}
@@ -346,18 +346,18 @@ static inline msgpack_sbuffer array_to_sbuf(Array array, Error *err)
/// @param[in] ctx Context to convert.
///
/// @return Dictionary representing "ctx".
-Dictionary ctx_to_dict(Context *ctx)
+Dictionary ctx_to_dict(Context *ctx, Arena *arena)
FUNC_ATTR_NONNULL_ALL
{
assert(ctx != NULL);
- Dictionary rv = ARRAY_DICT_INIT;
+ Dictionary rv = arena_dict(arena, 5);
- PUT(rv, "regs", ARRAY_OBJ(sbuf_to_array(ctx->regs)));
- PUT(rv, "jumps", ARRAY_OBJ(sbuf_to_array(ctx->jumps)));
- PUT(rv, "bufs", ARRAY_OBJ(sbuf_to_array(ctx->bufs)));
- PUT(rv, "gvars", ARRAY_OBJ(sbuf_to_array(ctx->gvars)));
- PUT(rv, "funcs", ARRAY_OBJ(copy_array(ctx->funcs, NULL)));
+ PUT_C(rv, "regs", ARRAY_OBJ(sbuf_to_array(ctx->regs, arena)));
+ PUT_C(rv, "jumps", ARRAY_OBJ(sbuf_to_array(ctx->jumps, arena)));
+ PUT_C(rv, "bufs", ARRAY_OBJ(sbuf_to_array(ctx->bufs, arena)));
+ PUT_C(rv, "gvars", ARRAY_OBJ(sbuf_to_array(ctx->gvars, arena)));
+ PUT_C(rv, "funcs", ARRAY_OBJ(copy_array(ctx->funcs, arena)));
return rv;
}