From 6ddf5b1c85c788aaf0b98b9c09abeb25644a7d73 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sat, 14 Sep 2019 21:26:46 +0200 Subject: [PATCH] write memory/data section also with nonGC polyfill --- .../inetsoftware/jwebassembly/binary/BinaryModuleWriter.java | 4 ++++ src/de/inetsoftware/jwebassembly/module/TypeManager.java | 2 +- src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java index 4ecf8de..3edd5c5 100644 --- a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java @@ -458,6 +458,10 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod dataStream.write( functIdx >>> 24 ); } + if( !options.useGC() ) { + return ValueType.anyref.getCode(); + } + int typeId = functionTypes.size(); functionTypes.add( new StructTypeEntry( type.getFields() ) ); return typeId; diff --git a/src/de/inetsoftware/jwebassembly/module/TypeManager.java b/src/de/inetsoftware/jwebassembly/module/TypeManager.java index 6bdb50c..c3ca9b7 100644 --- a/src/de/inetsoftware/jwebassembly/module/TypeManager.java +++ b/src/de/inetsoftware/jwebassembly/module/TypeManager.java @@ -207,7 +207,7 @@ public class TypeManager { methods = new ArrayList<>(); HashSet allNeededFields = new HashSet<>(); listStructFields( name, functions, types, libraries, allNeededFields ); - code = types.options.useGC() ? writer.writeStructType( this ) : ValueType.anyref.getCode(); + code = writer.writeStructType( this ); } /** diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index 0779a91..694e6b6 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -180,6 +180,10 @@ public class TextModuleWriter extends ModuleWriter { dataStream.write( functIdx >>> 24 ); } + if( !options.useGC() ) { + return ValueType.anyref.getCode(); + } + int oldInset = inset; inset = 1; newline( output );