From bf575f73a2bc9d3cc145d5c0e0cd4e4f01cb0325 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Wed, 15 Jun 2022 18:51:15 +0200 Subject: [PATCH] [WASM] Fix invalid fields name section emit --- .../kotlin/wasm/ir/convertors/WasmIrToBinary.kt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt index 0391d44b6ad..15e5e70ee99 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt @@ -168,15 +168,14 @@ class WasmIrToBinary(outputStream: OutputStream, val module: WasmModule, val mod // Experimental fields name section // https://github.com/WebAssembly/gc/issues/193 appendSection(10u) { - appendVectorSize(module.gcTypes.size) - module.gcTypes.forEach { - if (it is WasmStructDeclaration) { - appendModuleFieldReference(it) - appendVectorSize(it.fields.size) - it.fields.forEachIndexed { index, field -> - b.writeVarUInt32(index) - b.writeString(field.name) - } + val structDeclarations = module.gcTypes.filterIsInstance() + appendVectorSize(structDeclarations.size) + structDeclarations.forEach { + appendModuleFieldReference(it) + appendVectorSize(it.fields.size) + it.fields.forEachIndexed { index, field -> + b.writeVarUInt32(index) + b.writeString(field.name) } } }