From 20dad25cce66764c6b5b530183f06ac32d2d3efb Mon Sep 17 00:00:00 2001 From: Will Lillis Date: Fri, 12 Sep 2025 01:39:54 -0400 Subject: [PATCH] fix(lib): improve wasm scanner serialization error handling Co-authored-by: Amaan Qureshi (cherry picked from commit 0c35511aeaf6436b0acb381a71fc3a5968a4ee65) --- lib/src/parser.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/src/parser.c b/lib/src/parser.c index d0a2d2ca..39e6b89f 100644 --- a/lib/src/parser.c +++ b/lib/src/parser.c @@ -396,20 +396,24 @@ static void ts_parser__external_scanner_destroy( static unsigned ts_parser__external_scanner_serialize( TSParser *self ) { + uint32_t length; if (ts_language_is_wasm(self->language)) { - return ts_wasm_store_call_scanner_serialize( + length = ts_wasm_store_call_scanner_serialize( self->wasm_store, (uintptr_t)self->external_scanner_payload, self->lexer.debug_buffer ); + if (ts_wasm_store_has_error(self->wasm_store)) { + self->has_scanner_error = true; + } } else { - uint32_t length = self->language->external_scanner.serialize( + length = self->language->external_scanner.serialize( self->external_scanner_payload, self->lexer.debug_buffer ); - ts_assert(length <= TREE_SITTER_SERIALIZATION_BUFFER_SIZE); - return length; } + ts_assert(length <= TREE_SITTER_SERIALIZATION_BUFFER_SIZE); + return length; } static void ts_parser__external_scanner_deserialize(