@@ -1220,6 +1220,10 @@ const TSLanguage *ts_wasm_store_load_language(
12201220 const uint8_t * memory = wasmtime_memory_data (context , & self -> memory );
12211221 memcpy (& wasm_language , & memory [language_address ], sizeof (LanguageInWasmMemory ));
12221222
1223+ bool has_supertypes =
1224+ wasm_language .abi_version > LANGUAGE_VERSION_WITH_RESERVED_WORDS &&
1225+ wasm_language .supertype_count > 0 ;
1226+
12231227 int32_t addresses [] = {
12241228 wasm_language .parse_table ,
12251229 wasm_language .small_parse_table ,
@@ -1239,9 +1243,9 @@ const TSLanguage *ts_wasm_store_load_language(
12391243 wasm_language .primary_state_ids ,
12401244 wasm_language .name ,
12411245 wasm_language .reserved_words ,
1242- wasm_language .supertype_symbols ,
1243- wasm_language .supertype_map_entries ,
1244- wasm_language .supertype_map_slices ,
1246+ has_supertypes ? wasm_language .supertype_symbols : 0 ,
1247+ has_supertypes ? wasm_language .supertype_map_entries : 0 ,
1248+ has_supertypes ? wasm_language .supertype_map_slices : 0 ,
12451249 wasm_language .external_token_count > 0 ? wasm_language .external_scanner .states : 0 ,
12461250 wasm_language .external_token_count > 0 ? wasm_language .external_scanner .symbol_map : 0 ,
12471251 wasm_language .external_token_count > 0 ? wasm_language .external_scanner .create : 0 ,
@@ -1331,7 +1335,7 @@ const TSLanguage *ts_wasm_store_load_language(
13311335 );
13321336 }
13331337
1334- if (language -> supertype_count > 0 ) {
1338+ if (has_supertypes ) {
13351339 language -> supertype_symbols = copy (
13361340 & memory [wasm_language .supertype_symbols ],
13371341 wasm_language .supertype_count * sizeof (TSSymbol )
0 commit comments