aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/msgpack_rpc/unpacker.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-02-18 18:32:46 +0100
committerGitHub <noreply@github.com>2024-02-18 18:32:46 +0100
commit1c520053a9bf89004f1e5af9b31d3239341d7488 (patch)
tree902bafe780724ed393af753bbf4c5c346fbb84a9 /src/nvim/msgpack_rpc/unpacker.c
parent93c911e52feadff72003f7e78257c00c3bbf1570 (diff)
parentbbf6d4a4bc44c8e61f807d23cc4ff2c2683e1ef4 (diff)
downloadrneovim-1c520053a9bf89004f1e5af9b31d3239341d7488.tar.gz
rneovim-1c520053a9bf89004f1e5af9b31d3239341d7488.tar.bz2
rneovim-1c520053a9bf89004f1e5af9b31d3239341d7488.zip
Merge pull request #27520 from bfredl/metaarena
refactor(api): use arena for metadata; msgpack_rpc_to_object delenda est
Diffstat (limited to 'src/nvim/msgpack_rpc/unpacker.c')
-rw-r--r--src/nvim/msgpack_rpc/unpacker.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nvim/msgpack_rpc/unpacker.c b/src/nvim/msgpack_rpc/unpacker.c
index 38263381bf..6bc138f65a 100644
--- a/src/nvim/msgpack_rpc/unpacker.c
+++ b/src/nvim/msgpack_rpc/unpacker.c
@@ -18,15 +18,18 @@
# include "msgpack_rpc/unpacker.c.generated.h"
#endif
-Object unpack(const char *data, size_t size, Error *err)
+Object unpack(const char *data, size_t size, Arena *arena, Error *err)
{
Unpacker unpacker;
mpack_parser_init(&unpacker.parser, 0);
unpacker.parser.data.p = &unpacker;
+ unpacker.arena = *arena;
int result = mpack_parse(&unpacker.parser, &data, &size,
api_parse_enter, api_parse_exit);
+ *arena = unpacker.arena;
+
if (result == MPACK_NOMEM) {
api_set_error(err, kErrorTypeException, "object was too deep to unpack");
} else if (result == MPACK_EOF) {