diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-02-26 19:39:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-26 19:39:56 +0100 |
commit | 78ec95ce7dc070899caf2b35f7058ba466fe7073 (patch) | |
tree | c18b41e10c87af838fddda94eb4e8f65ca671586 /src/tree_sitter/array.h | |
parent | 96059d72e539c0a23c1f7a24290f35247ff01749 (diff) | |
parent | 3ce9b05653a71efe2eeaeca6b6132d1227c367b7 (diff) | |
download | rneovim-78ec95ce7dc070899caf2b35f7058ba466fe7073.tar.gz rneovim-78ec95ce7dc070899caf2b35f7058ba466fe7073.tar.bz2 rneovim-78ec95ce7dc070899caf2b35f7058ba466fe7073.zip |
Merge pull request #11946 from bfredl/ts-sync
treesitter: update vendored tree-sitter runtime
Diffstat (limited to 'src/tree_sitter/array.h')
-rw-r--r-- | src/tree_sitter/array.h | 28 |
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; } |