aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-05-26 13:39:05 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-05-26 14:02:12 -0300
commit4bac5e9ce19afd4647ee4d313c9485229d05a334 (patch)
tree5f6927bb13c8e68c6572c6d5d004c4517338cbfb /src/nvim/api
parent339d106f7c1e756782980e884304b44e5faebddd (diff)
downloadrneovim-4bac5e9ce19afd4647ee4d313c9485229d05a334.tar.gz
rneovim-4bac5e9ce19afd4647ee4d313c9485229d05a334.tar.bz2
rneovim-4bac5e9ce19afd4647ee4d313c9485229d05a334.zip
API: Refactor: Duplicate/free string arguments coming from msgpack
When receiving strings *from* msgpack, we don't need to duplicate/free since the data only lives in the msgpack parse buffer until the end of the call. But in order to reuse `msgpack_rpc_free_object` when sending event data(which is sent *to* msgpack), Strings must be freed, which means they must also be allocated separately.
Diffstat (limited to 'src/nvim/api')
-rw-r--r--src/nvim/api/buffer.c2
-rw-r--r--src/nvim/api/private/defs.h1
-rw-r--r--src/nvim/api/private/helpers.c2
3 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c
index bf30ccf856..ef2f9e9d0e 100644
--- a/src/nvim/api/buffer.c
+++ b/src/nvim/api/buffer.c
@@ -307,7 +307,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) {
diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h
index a91907f4f8..4d9f5fb708 100644
--- a/src/nvim/api/private/defs.h
+++ b/src/nvim/api/private/defs.h
@@ -6,6 +6,7 @@
#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) \
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index a43e7a8d2a..206129dd78 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -319,7 +319,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);