diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-09-05 13:32:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-05 13:32:58 +0200 |
commit | 7b1b271f43e9ceca3b195e7e3d56147d38919c2b (patch) | |
tree | ed2d0c84ed966a55bd0b1bfadfb0b8fedb434e14 /src/tree_sitter/stack.c | |
parent | 3853276d9cacc99a2698117e904475dbf7033383 (diff) | |
parent | b33e375b2b4e6c9232cdbfd5d6b7cb1b15e0f525 (diff) | |
download | rneovim-7b1b271f43e9ceca3b195e7e3d56147d38919c2b.tar.gz rneovim-7b1b271f43e9ceca3b195e7e3d56147d38919c2b.tar.bz2 rneovim-7b1b271f43e9ceca3b195e7e3d56147d38919c2b.zip |
Merge pull request #12788 from bfredl/nulloffset-1
robustness: avoid adding offset to NULL pointer
Diffstat (limited to 'src/tree_sitter/stack.c')
-rw-r--r-- | src/tree_sitter/stack.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/tree_sitter/stack.c b/src/tree_sitter/stack.c index 6ceee2577f..6a8d897c37 100644 --- a/src/tree_sitter/stack.c +++ b/src/tree_sitter/stack.c @@ -571,7 +571,12 @@ void ts_stack_record_summary(Stack *self, StackVersion version, unsigned max_dep }; array_init(session.summary); stack__iter(self, version, summarize_stack_callback, &session, -1); - self->heads.contents[version].summary = session.summary; + StackHead *head = &self->heads.contents[version]; + if (head->summary) { + array_delete(head->summary); + ts_free(head->summary); + } + head->summary = session.summary; } StackSummary *ts_stack_get_summary(Stack *self, StackVersion version) { @@ -743,6 +748,10 @@ bool ts_stack_print_dot_graph(Stack *self, const TSLanguage *language, FILE *f) ts_stack_error_cost(self, i) ); + if (head->summary) { + fprintf(f, "\nsummary_size: %u", head->summary->size); + } + if (head->last_external_token.ptr) { const ExternalScannerState *state = &head->last_external_token.ptr->external_scanner_state; const char *data = ts_external_scanner_state_data(state); |