From a6f1743109c761a7373cfe36fb030f7892c39667 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Wed, 11 Mar 2020 20:03:00 +0100 Subject: [PATCH] simplify the string count --- .../binary/BinaryModuleWriter.java | 2 +- .../jwebassembly/module/ModuleWriter.java | 23 +------------------ .../jwebassembly/module/StringManager.java | 3 +-- .../jwebassembly/module/WasmOptions.java | 2 +- .../jwebassembly/text/TextModuleWriter.java | 2 +- 5 files changed, 5 insertions(+), 27 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java index 91c2a81..c470bdc 100644 --- a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java @@ -168,7 +168,7 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod * if any I/O error occur */ private void writeTableSection() throws IOException { - int stringCount = getStringCount(); + int stringCount = options.strings.size(); int typeCount = options.types.size(); if( !callIndirect && stringCount == 0 ) { return; diff --git a/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java b/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java index 8364794..18edcc6 100644 --- a/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 - 2019 Volker Berlin (i-net software) + * Copyright 2017 - 2020 Volker Berlin (i-net software) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,8 +51,6 @@ public abstract class ModuleWriter implements Closeable { */ protected final ByteArrayOutputStream dataStream = new ByteArrayOutputStream(); - private int stringCount; - /** * Create a instance with its options. * @@ -63,25 +61,6 @@ public abstract class ModuleWriter implements Closeable { this.options = options; } - /** - * Set the used string counts - * - * @param count - * the count - */ - void setStringCount( int count ) { - this.stringCount = count; - } - - /** - * Get the string count - * - * @return the count - */ - protected int getStringCount() { - return stringCount; - } - /** * Finish the prepare after all classes/methods are prepare. This must be call before we can start with write the * first method. diff --git a/src/de/inetsoftware/jwebassembly/module/StringManager.java b/src/de/inetsoftware/jwebassembly/module/StringManager.java index bb4014a..8bc69a0 100644 --- a/src/de/inetsoftware/jwebassembly/module/StringManager.java +++ b/src/de/inetsoftware/jwebassembly/module/StringManager.java @@ -33,7 +33,7 @@ import de.inetsoftware.jwebassembly.wasm.ValueType; * * @author Volker Berlin */ -class StringManager extends LinkedHashMap { +public class StringManager extends LinkedHashMap { /** * Signature of method stringConstant. @@ -106,7 +106,6 @@ class StringManager extends LinkedHashMap { void prepareFinish( ModuleWriter writer ) throws IOException { // inform the writer of string count that it can allocate a table of type anyref for the constant strings int size = size(); - writer.setStringCount( size ); if( size == 0 ) { // no strings, nothing to do return; diff --git a/src/de/inetsoftware/jwebassembly/module/WasmOptions.java b/src/de/inetsoftware/jwebassembly/module/WasmOptions.java index da59b4d..d341a54 100644 --- a/src/de/inetsoftware/jwebassembly/module/WasmOptions.java +++ b/src/de/inetsoftware/jwebassembly/module/WasmOptions.java @@ -39,7 +39,7 @@ public class WasmOptions { public final TypeManager types = new TypeManager( this ); - final StringManager strings = new StringManager( this ); + public final StringManager strings = new StringManager( this ); final CodeOptimizer optimizer = new CodeOptimizer(); diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index d0d0d8e..a170174 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -146,7 +146,7 @@ public class TextModuleWriter extends ModuleWriter { } // table for string constants - int stringCount = getStringCount(); + int stringCount = options.strings.size(); if( stringCount > 0 ) { if( !callIndirect ) { // we need to create a placeholder table with index 0 if not exists