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/os | |
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/os')
-rw-r--r-- | src/nvim/os/env.c | 11 | ||||
-rw-r--r-- | src/nvim/os/input.c | 7 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c index b1e680e469..6c14f3d593 100644 --- a/src/nvim/os/env.c +++ b/src/nvim/os/env.c @@ -510,6 +510,17 @@ void free_homedir(void) xfree(homedir); } +void free_envmap(void) +{ + cstr_t name; + ptr_t e; + map_foreach(&envmap, name, e, { + xfree((char *)name); + xfree(e); + }); + map_destroy(cstr_t, &envmap); +} + #endif /// Call expand_env() and store the result in an allocated string. diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c index 7c404aa736..69d328754b 100644 --- a/src/nvim/os/input.c +++ b/src/nvim/os/input.c @@ -74,6 +74,13 @@ void input_stop(void) stream_close(&read_stream, NULL, NULL); } +#ifdef EXITFREE +void input_free_all_mem(void) +{ + rbuffer_free(input_buffer); +} +#endif + static void cursorhold_event(void **argv) { event_T event = State & MODE_INSERT ? EVENT_CURSORHOLDI : EVENT_CURSORHOLD; |