Access the static fields via the access method
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 26 Jan 2016 06:57:30 +0100
changeset 186314a122c18d73
parent 1862 fa00fb053c72
child 1864 44ade87ef2a4
Access the static fields via the access method
rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue Jan 26 05:54:37 2016 +0100
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue Jan 26 06:57:30 2016 +0100
     1.3 @@ -1474,7 +1474,8 @@
     1.4                      String[] fi = jc.getFieldInfoName(indx);
     1.5                      final int type = VarType.fromFieldType(fi[2].charAt(0));
     1.6                      String ac = accessClassFalse(mangleClassName(fi[0]));
     1.7 -                    String af = accessField(ac, null, fi);
     1.8 +                    FieldData field = findField(fi);
     1.9 +                    String af = accessField(ac, field, fi);
    1.10                      smapper.assign(this, type, af + "()");
    1.11                      i += 2;
    1.12                      addReference(fi[0]);
     2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Tue Jan 26 05:54:37 2016 +0100
     2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Tue Jan 26 06:57:30 2016 +0100
     2.3 @@ -320,12 +320,14 @@
     2.4      @Override
     2.5      protected String accessField(String object, FieldData field, String[] fieldInfoName)
     2.6      throws IOException {
     2.7 -        if (field != null) {
     2.8 +        if (field != null && !field.isStatic()) {
     2.9              return "fld_" + object + "_" + field.getName();
    2.10          } else {
    2.11              String mangledName = "_" + fieldInfoName[1];
    2.12 -            return accessNonVirtualMember(object, mangledName, null);
    2.13 -        }
    2.14 +           return accessNonVirtualMember(
    2.15 +               object, mangledName, field != null ? field.cls : null
    2.16 +           );
    2.17 +         }
    2.18      }
    2.19  
    2.20      @Override