aboutsummaryrefslogtreecommitdiff
path: root/src/tree_sitter/array.h
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2020-02-25 13:03:40 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2020-02-25 22:20:23 +0100
commit3ce9b05653a71efe2eeaeca6b6132d1227c367b7 (patch)
treec18b41e10c87af838fddda94eb4e8f65ca671586 /src/tree_sitter/array.h
parent96059d72e539c0a23c1f7a24290f35247ff01749 (diff)
downloadrneovim-3ce9b05653a71efe2eeaeca6b6132d1227c367b7.tar.gz
rneovim-3ce9b05653a71efe2eeaeca6b6132d1227c367b7.tar.bz2
rneovim-3ce9b05653a71efe2eeaeca6b6132d1227c367b7.zip
treesitter: update vendored tree-sitter runtime
tree-sitter/tree-sitter commit 6cb8d24de2d99c4c50c9a0fd1e719ca5b3abc87f Included files are: lib/include/tree-sitter/*.h lib/src/*.[ch] lib/src/unicode/* LICENSE
Diffstat (limited to 'src/tree_sitter/array.h')
-rw-r--r--src/tree_sitter/array.h28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h
index bc77e687bf..26cb8448f1 100644
--- a/src/tree_sitter/array.h
+++ b/src/tree_sitter/array.h
@@ -126,12 +126,28 @@ static inline void array__splice(VoidArray *self, size_t element_size,
array__reserve(self, element_size, new_size);
char *contents = (char *)self->contents;
- if (self->size > old_end)
- memmove(contents + new_end * element_size, contents + old_end * element_size,
- (self->size - old_end) * element_size);
- if (new_count > 0)
- memcpy((contents + index * element_size), elements,
- new_count * element_size);
+ if (self->size > old_end) {
+ memmove(
+ contents + new_end * element_size,
+ contents + old_end * element_size,
+ (self->size - old_end) * element_size
+ );
+ }
+ if (new_count > 0) {
+ if (elements) {
+ memcpy(
+ (contents + index * element_size),
+ elements,
+ new_count * element_size
+ );
+ } else {
+ memset(
+ (contents + index * element_size),
+ 0,
+ new_count * element_size
+ );
+ }
+ }
self->size += new_count - old_count;
}