diff options
Diffstat (limited to 'src/nvim/api')
-rw-r--r-- | src/nvim/api/buffer.c | 8 | ||||
-rw-r--r-- | src/nvim/api/private/defs.h | 7 | ||||
-rw-r--r-- | src/nvim/api/private/handle.h | 6 | ||||
-rw-r--r-- | src/nvim/api/private/helpers.c | 3 | ||||
-rw-r--r-- | src/nvim/api/private/helpers.h | 6 |
5 files changed, 18 insertions, 12 deletions
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index bf30ccf856..4721045048 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -60,6 +60,8 @@ String buffer_get_line(Buffer buffer, Integer index, Error *err) rv = slice.items[0]; } + free(slice.items); + return rv; } @@ -217,7 +219,8 @@ void buffer_set_slice(Buffer buffer, goto end; } - // Same as with replacing + // Same as with replacing, but we also need to free lines + free(lines[i]); lines[i] = NULL; extra++; } @@ -307,7 +310,7 @@ Integer buffer_get_number(Buffer buffer, Error *err) String buffer_get_name(Buffer buffer, Error *err) { - String rv = {.size = 0, .data = ""}; + String rv = STRING_INIT; buf_T *buf = find_buffer(buffer, err); if (!buf || buf->b_ffname == NULL) { @@ -333,6 +336,7 @@ void buffer_set_name(Buffer buffer, String name, Error *err) // Using aucmd_*: autocommands will be executed by rename_buffer aucmd_prepbuf(&aco, buf); ren_ret = rename_buffer((char_u *)val); + free(val); aucmd_restbuf(&aco); if (try_end(err)) { diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index a91907f4f8..fbf9018043 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -1,11 +1,12 @@ -#ifndef NVIM_API_DEFS_H -#define NVIM_API_DEFS_H +#ifndef NVIM_API_PRIVATE_DEFS_H +#define NVIM_API_PRIVATE_DEFS_H #include <stdint.h> #include <stdbool.h> #include <string.h> #define ARRAY_DICT_INIT {.size = 0, .items = NULL} +#define STRING_INIT {.data = NULL, .size = 0} #define REMOTE_TYPE(type) typedef uint64_t type #define TYPED_ARRAY_OF(type) \ @@ -84,5 +85,5 @@ struct key_value_pair { }; -#endif // NVIM_API_DEFS_H +#endif // NVIM_API_PRIVATE_DEFS_H diff --git a/src/nvim/api/private/handle.h b/src/nvim/api/private/handle.h index 27df453233..1a196f6797 100644 --- a/src/nvim/api/private/handle.h +++ b/src/nvim/api/private/handle.h @@ -1,5 +1,5 @@ -#ifndef NVIM_API_HANDLE_H -#define NVIM_API_HANDLE_H +#ifndef NVIM_API_PRIVATE_HANDLE_H +#define NVIM_API_PRIVATE_HANDLE_H #include "nvim/vim.h" #include "nvim/buffer_defs.h" @@ -16,5 +16,5 @@ HANDLE_DECLS(tabpage_T, tabpage) void handle_init(void); -#endif // NVIM_API_HANDLE_H +#endif // NVIM_API_PRIVATE_HANDLE_H diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index a43e7a8d2a..861ac8cc1b 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -267,6 +267,7 @@ void set_option_to(void *to, int type, String name, Object value, Error *err) char *val = xstrndup(value.data.string.data, value.data.string.size); set_option_value_for(key, 0, val, opt_flags, type, to, err); + free(val); } cleanup: @@ -319,7 +320,7 @@ tabpage_T * find_tab(Tabpage tabpage, Error *err) String cstr_to_string(const char *str) { if (str == NULL) { - return (String) { .data = NULL, .size = 0 }; + return (String) STRING_INIT; } size_t len = strlen(str); diff --git a/src/nvim/api/private/helpers.h b/src/nvim/api/private/helpers.h index 2d917c2b5e..04b128d3f1 100644 --- a/src/nvim/api/private/helpers.h +++ b/src/nvim/api/private/helpers.h @@ -1,5 +1,5 @@ -#ifndef NVIM_API_HELPERS_H -#define NVIM_API_HELPERS_H +#ifndef NVIM_API_PRIVATE_HELPERS_H +#define NVIM_API_PRIVATE_HELPERS_H #include <stdbool.h> @@ -94,5 +94,5 @@ tabpage_T * find_tab(Tabpage tabpage, Error *err); /// empty String is returned String cstr_to_string(const char *str); -#endif // NVIM_API_HELPERS_H +#endif // NVIM_API_PRIVATE_HELPERS_H |