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

changeset 1313
873ddd9f4900
parent 1309
c9749226cdde
child 1374
c002fdee76fd
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Mon Aug 27 10:59:13 2012 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Fri Aug 31 10:37:46 2012 +0100
     1.3 @@ -1321,7 +1321,7 @@
     1.4                  else
     1.5                      proxies.append(proxy);
     1.6              }
     1.7 -            annotate.later(new AnnotationCompleter(sym, proxies.toList()));
     1.8 +            annotate.normal(new AnnotationCompleter(sym, proxies.toList()));
     1.9          }
    1.10      }
    1.11  
    1.12 @@ -1347,7 +1347,7 @@
    1.13      void attachAnnotationDefault(final Symbol sym) {
    1.14          final MethodSymbol meth = (MethodSymbol)sym; // only on methods
    1.15          final Attribute value = readAttributeValue();
    1.16 -        annotate.later(new AnnotationDefaultCompleter(meth, value));
    1.17 +        annotate.normal(new AnnotationDefaultCompleter(meth, value));
    1.18      }
    1.19  
    1.20      Type readTypeOrClassSymbol(int i) {
    1.21 @@ -1693,10 +1693,13 @@
    1.22              JavaFileObject previousClassFile = currentClassFile;
    1.23              try {
    1.24                  currentClassFile = classFile;
    1.25 +                Annotations annotations = sym.annotations;
    1.26                  List<Attribute.Compound> newList = deproxyCompoundList(l);
    1.27 -                sym.attributes_field = ((sym.attributes_field == null)
    1.28 -                                        ? newList
    1.29 -                                        : newList.prependList(sym.attributes_field));
    1.30 +                if (annotations.pendingCompletion()) {
    1.31 +                    annotations.setAttributes(newList);
    1.32 +                } else {
    1.33 +                    annotations.append(newList);
    1.34 +                }
    1.35              } finally {
    1.36                  currentClassFile = previousClassFile;
    1.37              }

mercurial