aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-25 11:26:50 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-25 11:30:17 +0100
commit90b74cb3dfa09bc2c5bae3dacd9f16dc841c2e6a (patch)
tree0d2906a4bae8bbaff4301b1e6ef8be6c242bb41c /src/main/java
parent1c085ab26815a2f61ae822f54925090f836a04e4 (diff)
Extract writeCustomSection()
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatModules.java13
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatNameSection.java8
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);
});