diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-12-02 07:55:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-02 07:55:44 +0800 |
commit | f6e5366d0077e9f171651f37282cb5c47629d1b6 (patch) | |
tree | fb7f29ea11c7c122f3e4404c9473b8fff1dc5eaf /src/nvim/msgpack_rpc | |
parent | 983defd284f5941c870d7868cdb60587a98ab348 (diff) | |
download | rneovim-f6e5366d0077e9f171651f37282cb5c47629d1b6.tar.gz rneovim-f6e5366d0077e9f171651f37282cb5c47629d1b6.tar.bz2 rneovim-f6e5366d0077e9f171651f37282cb5c47629d1b6.zip |
refactor: free more reachable memory with EXITFREE (#26349)
Discovered using __sanitizer_print_memory_profile().
Diffstat (limited to 'src/nvim/msgpack_rpc')
-rw-r--r-- | src/nvim/msgpack_rpc/channel.c | 5 | ||||
-rw-r--r-- | src/nvim/msgpack_rpc/helpers.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c index acc21bbf7e..2336853609 100644 --- a/src/nvim/msgpack_rpc/channel.c +++ b/src/nvim/msgpack_rpc/channel.c @@ -751,6 +751,7 @@ const char *get_client_info(Channel *chan, const char *key) return NULL; } +#ifdef EXITFREE void rpc_free_all_mem(void) { cstr_t key; @@ -758,4 +759,8 @@ void rpc_free_all_mem(void) xfree((void *)key); }); set_destroy(cstr_t, &event_strings); + + msgpack_sbuffer_destroy(&out_buffer); + multiqueue_free(ch_before_blocking_events); } +#endif diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index d2be321e7a..3162269df6 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -27,6 +27,14 @@ void msgpack_rpc_helpers_init(void) msgpack_sbuffer_init(&sbuffer); } +#ifdef EXITFREE +void msgpack_rpc_helpers_free_all_mem(void) +{ + msgpack_zone_destroy(&zone); + msgpack_sbuffer_destroy(&sbuffer); +} +#endif + typedef struct { const msgpack_object *mobj; Object *aobj; |