From 672aca29a7ee4dabb64c53e215a2fd69cfd3050c Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sun, 3 Jan 2021 15:43:40 +0100 Subject: [PATCH] Use the GC type for strings and classes table. --- src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index 6f06aa6..d3fccd9 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -154,14 +154,16 @@ public class TextModuleWriter extends ModuleWriter { textOutput.append( "(table $functions 0 funcref)" ); } newline( textOutput ); - textOutput.append( "(table $strings " ).append( Integer.toString( stringCount ) ).append( " externref)" ); + String tableTypeName = options.useGC() && types.contains( "java/lang/String" ) ? "$java/lang/String" : "externref"; + textOutput.append( "(table $strings " ).append( Integer.toString( stringCount ) ).append( ' ' ).append( tableTypeName ).append( ')' ); } // table with classes int typeCount = options.types.size(); if( typeCount > 0 ) { newline( textOutput ); - textOutput.append( "(table $classes " ).append( Integer.toString( typeCount ) ).append( " externref)" ); + String tableTypeName = options.useGC() && types.contains( "java/lang/Class" ) ? "$java/lang/Class" : "externref"; + textOutput.append( "(table $classes " ).append( Integer.toString( typeCount ) ).append( ' ' ).append( tableTypeName ).append( ')' ); } int dataSize = dataStream.size();