aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-12-02 07:55:44 +0800
committerGitHub <noreply@github.com>2023-12-02 07:55:44 +0800
commitf6e5366d0077e9f171651f37282cb5c47629d1b6 (patch)
treefb7f29ea11c7c122f3e4404c9473b8fff1dc5eaf /src/nvim/os
parent983defd284f5941c870d7868cdb60587a98ab348 (diff)
downloadrneovim-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.c11
-rw-r--r--src/nvim/os/input.c7
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;