From 0e02db9985aa49e304292d7e9f4b246e8c76f697 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Tue, 1 Jan 2019 12:26:32 +0100 Subject: [PATCH] write function lazy to the output to hold space free for more meta informations --- .../jwebassembly/text/TextModuleWriter.java | 13 ++++++------- .../jwebassembly/module/WatParserTest.java | 3 ++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index 6f3a169..ef67269 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -76,6 +76,7 @@ public class TextModuleWriter extends ModuleWriter { */ @Override public void close() throws IOException { + output.append( methodOutput ); inset--; newline( output ); output.append( ')' ); @@ -87,8 +88,8 @@ public class TextModuleWriter extends ModuleWriter { @Override protected void prepareImport( FunctionName name, String importModule, String importName ) throws IOException { if( importName != null ) { - newline( output ); - output.append( "(import \"" ).append( importModule ).append( "\" \"" ).append( importName ).append( "\" (func $" ).append( name.fullName ); + newline( methodOutput ); + methodOutput.append( "(import \"" ).append( importModule ).append( "\" \"" ).append( importName ).append( "\" (func $" ).append( name.fullName ); isImport = true; } } @@ -107,7 +108,6 @@ public class TextModuleWriter extends ModuleWriter { */ @Override protected void writeMethodStart( FunctionName name ) throws IOException { - methodOutput.setLength( 0 ); newline( methodOutput ); methodOutput.append( "(func $" ); methodOutput.append( name.fullName ); @@ -133,7 +133,7 @@ public class TextModuleWriter extends ModuleWriter { protected void writeMethodParamFinish( ) throws IOException { if( isImport ) { isImport = false; - output.append( "))" ); + methodOutput.append( "))" ); } } @@ -142,10 +142,9 @@ public class TextModuleWriter extends ModuleWriter { */ @Override protected void writeMethodFinish() throws IOException { - output.append( methodOutput ); inset--; - newline( output ); - output.append( ')' ); + newline( methodOutput ); + methodOutput.append( ')' ); } /** diff --git a/test/de/inetsoftware/jwebassembly/module/WatParserTest.java b/test/de/inetsoftware/jwebassembly/module/WatParserTest.java index 6be2d0d..371c370 100644 --- a/test/de/inetsoftware/jwebassembly/module/WatParserTest.java +++ b/test/de/inetsoftware/jwebassembly/module/WatParserTest.java @@ -44,7 +44,8 @@ public class WatParserTest { instruction.writeTo( writer ); } writer.writeMethodFinish(); - String expected = normalize( "(module " + wat + " )" ); + writer.close(); + String expected = normalize( "(module " + wat + " ) )" ); String actual = normalize( builder ); assertEquals( expected, actual ); }