mirror of
https://github.com/i-net-software/JWebAssembly.git
synced 2025-03-25 07:27:52 +01:00
simplify the string count
This commit is contained in:
parent
cc4a5e7858
commit
a6f1743109
@ -168,7 +168,7 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod
|
|||||||
* if any I/O error occur
|
* if any I/O error occur
|
||||||
*/
|
*/
|
||||||
private void writeTableSection() throws IOException {
|
private void writeTableSection() throws IOException {
|
||||||
int stringCount = getStringCount();
|
int stringCount = options.strings.size();
|
||||||
int typeCount = options.types.size();
|
int typeCount = options.types.size();
|
||||||
if( !callIndirect && stringCount == 0 ) {
|
if( !callIndirect && stringCount == 0 ) {
|
||||||
return;
|
return;
|
||||||
|
@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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();
|
protected final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
|
||||||
|
|
||||||
private int stringCount;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a instance with its options.
|
* Create a instance with its options.
|
||||||
*
|
*
|
||||||
@ -63,25 +61,6 @@ public abstract class ModuleWriter implements Closeable {
|
|||||||
this.options = options;
|
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
|
* Finish the prepare after all classes/methods are prepare. This must be call before we can start with write the
|
||||||
* first method.
|
* first method.
|
||||||
|
@ -33,7 +33,7 @@ import de.inetsoftware.jwebassembly.wasm.ValueType;
|
|||||||
*
|
*
|
||||||
* @author Volker Berlin
|
* @author Volker Berlin
|
||||||
*/
|
*/
|
||||||
class StringManager extends LinkedHashMap<String, Integer> {
|
public class StringManager extends LinkedHashMap<String, Integer> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signature of method stringConstant.
|
* Signature of method stringConstant.
|
||||||
@ -106,7 +106,6 @@ class StringManager extends LinkedHashMap<String, Integer> {
|
|||||||
void prepareFinish( ModuleWriter writer ) throws IOException {
|
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
|
// inform the writer of string count that it can allocate a table of type anyref for the constant strings
|
||||||
int size = size();
|
int size = size();
|
||||||
writer.setStringCount( size );
|
|
||||||
if( size == 0 ) {
|
if( size == 0 ) {
|
||||||
// no strings, nothing to do
|
// no strings, nothing to do
|
||||||
return;
|
return;
|
||||||
|
@ -39,7 +39,7 @@ public class WasmOptions {
|
|||||||
|
|
||||||
public final TypeManager types = new TypeManager( this );
|
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();
|
final CodeOptimizer optimizer = new CodeOptimizer();
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ public class TextModuleWriter extends ModuleWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// table for string constants
|
// table for string constants
|
||||||
int stringCount = getStringCount();
|
int stringCount = options.strings.size();
|
||||||
if( stringCount > 0 ) {
|
if( stringCount > 0 ) {
|
||||||
if( !callIndirect ) {
|
if( !callIndirect ) {
|
||||||
// we need to create a placeholder table with index 0 if not exists
|
// we need to create a placeholder table with index 0 if not exists
|
||||||
|
Loading…
x
Reference in New Issue
Block a user