From 7f6ec0131d3164b02dcb8fefb80bded5235f2dcd Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 6 Dec 2016 10:12:49 -0800 Subject: [PATCH] Remove duplication between parser_destroy and parser_set_language --- src/runtime/parser.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/runtime/parser.c b/src/runtime/parser.c index 3ec4338d..be827250 100644 --- a/src/runtime/parser.c +++ b/src/runtime/parser.c @@ -1130,11 +1130,10 @@ bool parser_init(Parser *self) { } void parser_set_language(Parser *self, const TSLanguage *language) { - if (self->external_scanner_payload) - if (self->language->external_scanner.destroy) - self->language->external_scanner.destroy(self->external_scanner_payload); + if (self->external_scanner_payload && self->language->external_scanner.destroy) + self->language->external_scanner.destroy(self->external_scanner_payload); - if (language->external_scanner.create) + if (language && language->external_scanner.create) self->external_scanner_payload = language->external_scanner.create(); else self->external_scanner_payload = NULL; @@ -1151,9 +1150,7 @@ void parser_destroy(Parser *self) { array_delete(&self->tree_path1); if (self->tree_path2.contents) array_delete(&self->tree_path2); - if (self->external_scanner_payload) - if (self->language->external_scanner.destroy) - self->language->external_scanner.destroy(self->external_scanner_payload); + parser_set_language(self, NULL); } Tree *parser_parse(Parser *self, TSInput input, Tree *old_tree) {