diff options
| author | bfredl <bjorn.linse@gmail.com> | 2024-03-08 08:57:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-08 08:57:09 +0100 |
| commit | 55c9e2c96e28059a5102e2551b16b4fa4592723b (patch) | |
| tree | 5636e0c1c10eb25f0af62cc89ee27133230368e0 /src/nvim/api/private | |
| parent | 6a580b997b9f8124d23ca6c87a47b4fec2e3e9e7 (diff) | |
| parent | dc37c1550bed46fffbb677d343cdc5bc94056219 (diff) | |
| download | rneovim-55c9e2c96e28059a5102e2551b16b4fa4592723b.tar.gz rneovim-55c9e2c96e28059a5102e2551b16b4fa4592723b.tar.bz2 rneovim-55c9e2c96e28059a5102e2551b16b4fa4592723b.zip | |
Merge pull request #27655 from bfredl/mpack_obj
refactor(msgpack): allow flushing buffer while packing msgpack
Diffstat (limited to 'src/nvim/api/private')
| -rw-r--r-- | src/nvim/api/private/defs.h | 8 | ||||
| -rw-r--r-- | src/nvim/api/private/helpers.c | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index 0cdc90e50f..ca088d7a55 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -105,6 +105,14 @@ typedef enum { kObjectTypeTabpage, } ObjectType; +/// Value by which objects represented as EXT type are shifted +/// +/// Subtracted when packing, added when unpacking. Used to allow moving +/// buffer/window/tabpage block inside ObjectType enum. This block yet cannot be +/// split or reordered. +#define EXT_OBJECT_TYPE_SHIFT kObjectTypeBuffer +#define EXT_OBJECT_TYPE_MAX (kObjectTypeTabpage - EXT_OBJECT_TYPE_SHIFT) + struct object { ObjectType type; union { diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index 97ba15e871..1cd98aa0c4 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -29,7 +29,6 @@ #include "nvim/memory.h" #include "nvim/memory_defs.h" #include "nvim/message.h" -#include "nvim/msgpack_rpc/helpers.h" #include "nvim/msgpack_rpc/unpacker.h" #include "nvim/pos_defs.h" #include "nvim/types_defs.h" @@ -984,7 +983,7 @@ Dictionary api_keydict_to_dict(void *value, KeySetLink *table, size_t max_size, val = DICTIONARY_OBJ(*(Dictionary *)mem); } else if (field->type == kObjectTypeBuffer || field->type == kObjectTypeWindow || field->type == kObjectTypeTabpage) { - val.data.integer = *(Integer *)mem; + val.data.integer = *(handle_T *)mem; val.type = field->type; } else if (field->type == kObjectTypeLuaRef) { // do nothing |