From 374e0b6678b21105bd5a26265e483cc4d9dbcaad Mon Sep 17 00:00:00 2001 From: bfredl Date: Tue, 21 Jun 2022 12:29:49 +0200 Subject: perf(highlight): don't allocate duplicates for color names --- src/nvim/api/vim.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/nvim/api') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 3a24f2b405..b7df1398f5 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -1293,7 +1293,8 @@ void nvim_unsubscribe(uint64_t channel_id, String event) Integer nvim_get_color_by_name(String name) FUNC_API_SINCE(1) { - return name_to_color(name.data); + int dummy; + return name_to_color(name.data, &dummy); } /// Returns a map of color names and RGB values. -- cgit From a9442c532e9af45fc5c79d0207ab837cb715941f Mon Sep 17 00:00:00 2001 From: bfredl Date: Tue, 21 Jun 2022 13:03:35 +0200 Subject: perf(highlight): allocate permanent names in an arena for fun and cache locality --- src/nvim/api/private/helpers.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/nvim/api') diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index 693d946088..9cadef0385 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -686,10 +686,7 @@ Dictionary arena_dict(Arena *arena, size_t max_size) String arena_string(Arena *arena, String str) { if (str.size) { - char *mem = arena_alloc(arena, str.size + 1, false); - memcpy(mem, str.data, str.size); - mem[str.size] = NUL; - return cbuf_as_string(mem, str.size); + return cbuf_as_string(arena_memdupz(arena, str.data, str.size), str.size); } else { return (String)STRING_INIT; } -- cgit