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

changeset 1452
de1ec6fc93fe
parent 1445
376d6c1b49e5
child 1473
31780dd06ec7
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Fri Dec 14 11:16:46 2012 +0000
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Sat Dec 15 13:54:51 2012 +0000
     1.3 @@ -488,20 +488,20 @@
     1.4          case CONSTANT_Fieldref: {
     1.5              ClassSymbol owner = readClassSymbol(getChar(index + 1));
     1.6              NameAndType nt = (NameAndType)readPool(getChar(index + 3));
     1.7 -            poolObj[i] = new VarSymbol(0, nt.name, nt.type, owner);
     1.8 +            poolObj[i] = new VarSymbol(0, nt.name, nt.uniqueType.type, owner);
     1.9              break;
    1.10          }
    1.11          case CONSTANT_Methodref:
    1.12          case CONSTANT_InterfaceMethodref: {
    1.13              ClassSymbol owner = readClassSymbol(getChar(index + 1));
    1.14              NameAndType nt = (NameAndType)readPool(getChar(index + 3));
    1.15 -            poolObj[i] = new MethodSymbol(0, nt.name, nt.type, owner);
    1.16 +            poolObj[i] = new MethodSymbol(0, nt.name, nt.uniqueType.type, owner);
    1.17              break;
    1.18          }
    1.19          case CONSTANT_NameandType:
    1.20              poolObj[i] = new NameAndType(
    1.21                  readName(getChar(index + 1)),
    1.22 -                readType(getChar(index + 3)));
    1.23 +                readType(getChar(index + 3)), types);
    1.24              break;
    1.25          case CONSTANT_Integer:
    1.26              poolObj[i] = getInt(index + 1);
    1.27 @@ -1224,7 +1224,7 @@
    1.28          if (nt == null)
    1.29              return null;
    1.30  
    1.31 -        MethodType type = nt.type.asMethodType();
    1.32 +        MethodType type = nt.uniqueType.type.asMethodType();
    1.33  
    1.34          for (Scope.Entry e = scope.lookup(nt.name); e.scope != null; e = e.next())
    1.35              if (e.sym.kind == MTH && isSameBinaryType(e.sym.type.asMethodType(), type))
    1.36 @@ -1236,16 +1236,16 @@
    1.37          if ((flags & INTERFACE) != 0)
    1.38              // no enclosing instance
    1.39              return null;
    1.40 -        if (nt.type.getParameterTypes().isEmpty())
    1.41 +        if (nt.uniqueType.type.getParameterTypes().isEmpty())
    1.42              // no parameters
    1.43              return null;
    1.44  
    1.45          // A constructor of an inner class.
    1.46          // Remove the first argument (the enclosing instance)
    1.47 -        nt.type = new MethodType(nt.type.getParameterTypes().tail,
    1.48 -                                 nt.type.getReturnType(),
    1.49 -                                 nt.type.getThrownTypes(),
    1.50 -                                 syms.methodClass);
    1.51 +        nt.setType(new MethodType(nt.uniqueType.type.getParameterTypes().tail,
    1.52 +                                 nt.uniqueType.type.getReturnType(),
    1.53 +                                 nt.uniqueType.type.getThrownTypes(),
    1.54 +                                 syms.methodClass));
    1.55          // Try searching again
    1.56          return findMethod(nt, scope, flags);
    1.57      }
    1.58 @@ -1959,7 +1959,7 @@
    1.59  
    1.60          if (readAllOfClassFile) {
    1.61              for (int i = 1; i < poolObj.length; i++) readPool(i);
    1.62 -            c.pool = new Pool(poolObj.length, poolObj);
    1.63 +            c.pool = new Pool(poolObj.length, poolObj, types);
    1.64          }
    1.65  
    1.66          // reset and read rest of classinfo

mercurial