Remove duplication between parser_destroy and parser_set_language
This commit is contained in:
parent
83514293b5
commit
7f6ec0131d
1 changed files with 4 additions and 7 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue