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

changeset 1086
f595d8bc0599
parent 909
7798e3a5ecf5
child 1135
36553cb94345
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Tue Sep 13 14:14:57 2011 +0100
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Tue Sep 13 14:15:22 2011 +0100
     1.3 @@ -863,10 +863,10 @@
     1.4          }
     1.5          if (c.type.tag != CLASS) return; // arrays
     1.6          if (pool != null && // pool might be null if called from xClassName
     1.7 -            c.owner.kind != PCK &&
     1.8 +            c.owner.enclClass() != null &&
     1.9              (innerClasses == null || !innerClasses.contains(c))) {
    1.10  //          log.errWriter.println("enter inner " + c);//DEBUG
    1.11 -            if (c.owner.kind == TYP) enterInner((ClassSymbol)c.owner);
    1.12 +            enterInner(c.owner.enclClass());
    1.13              pool.put(c);
    1.14              pool.put(c.name);
    1.15              if (innerClasses == null) {
    1.16 @@ -1505,6 +1505,13 @@
    1.17              default : Assert.error();
    1.18              }
    1.19          }
    1.20 +
    1.21 +        if (c.trans_local != null) {
    1.22 +            for (ClassSymbol local : c.trans_local) {
    1.23 +                enterInner(local);
    1.24 +            }
    1.25 +        }
    1.26 +
    1.27          databuf.appendChar(fieldsCount);
    1.28          writeFields(c.members().elems);
    1.29          databuf.appendChar(methodsCount);

mercurial