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 );