src/share/classes/com/sun/tools/javac/jvm/ClassReader.java

changeset 826
5cf6c432ef2f
parent 816
7c537f4298fb
child 857
3aa269645199
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Fri Jan 14 13:59:18 2011 -0800
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Tue Jan 18 08:37:05 2011 -0800
     1.3 @@ -434,14 +434,19 @@
     1.4              }
     1.5              case CONSTANT_Class:
     1.6              case CONSTANT_String:
     1.7 +            case CONSTANT_MethodType:
     1.8                  bp = bp + 2;
     1.9                  break;
    1.10 +            case CONSTANT_MethodHandle:
    1.11 +                bp = bp + 3;
    1.12 +                break;
    1.13              case CONSTANT_Fieldref:
    1.14              case CONSTANT_Methodref:
    1.15              case CONSTANT_InterfaceMethodref:
    1.16              case CONSTANT_NameandType:
    1.17              case CONSTANT_Integer:
    1.18              case CONSTANT_Float:
    1.19 +            case CONSTANT_InvokeDynamic:
    1.20                  bp = bp + 4;
    1.21                  break;
    1.22              case CONSTANT_Long:
    1.23 @@ -510,6 +515,15 @@
    1.24          case CONSTANT_Double:
    1.25              poolObj[i] = new Double(getDouble(index + 1));
    1.26              break;
    1.27 +        case CONSTANT_MethodHandle:
    1.28 +            skipBytes(4);
    1.29 +            break;
    1.30 +        case CONSTANT_MethodType:
    1.31 +            skipBytes(3);
    1.32 +            break;
    1.33 +        case CONSTANT_InvokeDynamic:
    1.34 +            skipBytes(5);
    1.35 +            break;
    1.36          default:
    1.37              throw badClassFile("bad.const.pool.tag", Byte.toString(tag));
    1.38          }
    1.39 @@ -1821,6 +1835,13 @@
    1.40          sym.savedParameterNames = paramNames.reverse();
    1.41      }
    1.42  
    1.43 +    /**
    1.44 +     * skip n bytes
    1.45 +     */
    1.46 +    void skipBytes(int n) {
    1.47 +        bp = bp + n;
    1.48 +    }
    1.49 +
    1.50      /** Skip a field or method
    1.51       */
    1.52      void skipMember() {

mercurial