diff --git a/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java b/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java index 416c87a..8754c1e 100644 --- a/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java +++ b/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java @@ -314,6 +314,8 @@ public class ModuleGenerator { if( superClass != null ) { String superClassName = superClass.getName(); listStructFields( superClassName, list ); + } else { + list.add( new NamedStorageType( ValueType.i32, className, ".vtable" ) ); } for( FieldInfo field : classFile.getFields() ) { diff --git a/src/de/inetsoftware/jwebassembly/wasm/NamedStorageType.java b/src/de/inetsoftware/jwebassembly/wasm/NamedStorageType.java index c8e7cd6..794fbd1 100644 --- a/src/de/inetsoftware/jwebassembly/wasm/NamedStorageType.java +++ b/src/de/inetsoftware/jwebassembly/wasm/NamedStorageType.java @@ -71,7 +71,21 @@ public class NamedStorageType { * the type manager */ private NamedStorageType( String type, String className, String name, TypeManager types ) { - this.type = new ValueTypeParser( type, types ).next(); + this( new ValueTypeParser( type, types ).next(), className, name ); + } + + /** + * Create a new instance + * + * @param type + * the type + * @param className + * the class name + * @param name + * the name + */ + public NamedStorageType( AnyType type, String className, String name ) { + this.type = type; this.className = className; this.name = name; }