diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-25 11:26:50 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-25 11:30:17 +0100 |
| commit | 90b74cb3dfa09bc2c5bae3dacd9f16dc841c2e6a (patch) | |
| tree | 0d2906a4bae8bbaff4301b1e6ef8be6c242bb41c /src/main/java | |
| parent | 1c085ab26815a2f61ae822f54925090f836a04e4 (diff) | |
Extract writeCustomSection()
Diffstat (limited to 'src/main/java')
2 files changed, 16 insertions, 5 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatModules.java b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatModules.java index 603319d8..41a84e2a 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatModules.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatModules.java @@ -80,6 +80,19 @@ public class WasmBinaryFormatModules { } } + // == Custom Section == + + static void writeCustomSection( + String name, + BinaryWriter writer, + Write writeContent + ) throws IOException { + writeSection(SectionId.CUSTOM, writer, () -> { + writeString(name, writer); + writeContent.write(); + }); + } + // == Type Section == private static void writeTypeSection( diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatNameSection.java b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatNameSection.java index 82cd99c9..e5142955 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatNameSection.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatNameSection.java @@ -2,10 +2,9 @@ package org.shedlang.compiler.backends.wasm.structure.binary; import org.shedlang.compiler.backends.wasm.structure.BinaryWriter; import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmFuncIndex; +import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmImportDescriptor; import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmLocal; import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmModule; -import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmImportDescriptor; -import org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatModules.SectionId; import java.io.IOException; import java.util.ArrayList; @@ -13,8 +12,8 @@ import java.util.List; import java.util.stream.Stream; import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatConventions.writeVec; +import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatModules.writeCustomSection; import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatModules.writeFuncIndex; -import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatModules.writeSection; import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatSize.writeSize; import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatValues.writeString; @@ -31,8 +30,7 @@ public class WasmBinaryFormatNameSection { WasmIndexTable indexTable, BinaryWriter writer ) throws IOException { - writeSection(SectionId.CUSTOM, writer, () -> { - writeString("name", writer); + writeCustomSection("name", writer, () -> { writeFunctionNameSubsection(module, writer); writeLocalNameSubsection(module, indexTable, writer); }); |
