Reset language when resetting wasm store (#3495)

* Reset language when resetting wasm store

* test behavior of language copying
This commit is contained in:
Ryan Patterson 2024-07-31 23:30:58 +06:00 committed by GitHub
parent a861fabfbd
commit 779566f588
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 32 additions and 0 deletions

View file

@ -2144,11 +2144,22 @@ TSTree *ts_parser_parse_string_encoding(
}
void ts_parser_set_wasm_store(TSParser *self, TSWasmStore *store) {
if (self->language && ts_language_is_wasm(self->language)) {
// Copy the assigned language into the new store.
const TSLanguage *copy = ts_language_copy(self->language);
ts_parser_set_language(self, copy);
ts_language_delete(copy);
}
ts_wasm_store_delete(self->wasm_store);
self->wasm_store = store;
}
TSWasmStore *ts_parser_take_wasm_store(TSParser *self) {
if (self->language && ts_language_is_wasm(self->language)) {
ts_parser_set_language(self, NULL);
}
TSWasmStore *result = self->wasm_store;
self->wasm_store = NULL;
return result;