A bit more reasonable toString() describing real content on the stack
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 26 Feb 2015 19:41:08 +0100
changeset 179364fa3f15cb49
parent 1792 7b3c3c327cf0
child 1794 df885b256382
A bit more reasonable toString() describing real content on the stack
rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeParser.java
rt/vm/src/main/java/org/apidesign/vm4brwsr/VarType.java
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeParser.java	Thu Feb 26 19:19:59 2015 +0100
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeParser.java	Thu Feb 26 19:41:08 2015 +0100
     1.3 @@ -2651,14 +2651,11 @@
     1.4          @Override
     1.5          public String toString() {
     1.6              final StringBuilder sb = new StringBuilder("[");
     1.7 -            if (size > 0) {
     1.8 -                sb.append(typeString(types[0]));
     1.9 -                for (int i = 1; i < size; ++i) {
    1.10 -                    sb.append(", ");
    1.11 -                    sb.append(typeString(types[i]));
    1.12 -                }
    1.13 +            String sep = "";
    1.14 +            for (int i = 0; i < size; ++i) {
    1.15 +                sb.append(sep).append(VarType.toString(types[i] & 0xff));
    1.16 +                sep = ", ";
    1.17              }
    1.18 -
    1.19              return sb.append(']').toString();
    1.20          }
    1.21  
     2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VarType.java	Thu Feb 26 19:19:59 2015 +0100
     2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VarType.java	Thu Feb 26 19:41:08 2015 +0100
     2.3 @@ -105,4 +105,16 @@
     2.4                  throw new IllegalStateException("Unhandled field type");
     2.5          }
     2.6      }
     2.7 +    
     2.8 +    public static String toString(final int varType) {
     2.9 +        switch (varType) {
    2.10 +            case VarType.INTEGER: return "int";
    2.11 +            case VarType.LONG: return "long";
    2.12 +            case VarType.FLOAT: return "float";
    2.13 +            case VarType.DOUBLE: return "double";
    2.14 +            case VarType.REFERENCE: return "ref";
    2.15 +            default:
    2.16 +                throw new IllegalStateException("Unhandled field type");
    2.17 +        }
    2.18 +    }
    2.19  }