]> source.dussan.org Git - aspectj.git/commitdiff
250091: test and fix
authoraclement <aclement>
Wed, 29 Oct 2008 00:36:38 +0000 (00:36 +0000)
committeraclement <aclement>
Wed, 29 Oct 2008 00:36:38 +0000 (00:36 +0000)
weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java

index b70f7db94c85aba394f5a053adb51f0c421b2d95..14c82f50bb380f6a88406dec8afa92b593aa8076 100644 (file)
@@ -81,23 +81,23 @@ public final class LazyClassGen {
 
        int highestLineNumber = 0; // ---- JSR 45 info
 
-       private SortedMap /* <String, InlinedSourceFileInfo> */inlinedFiles = new TreeMap();
+       private final SortedMap /* <String, InlinedSourceFileInfo> */inlinedFiles = new TreeMap();
 
        private boolean regenerateGenericSignatureAttribute = false;
 
        private BcelObjectType myType; // XXX is not set for types we create
        private ClassGen myGen;
-       private ConstantPool cp;
-       private World world;
-       private String packageName = null;
-
-       private List /* BcelField */fields = new ArrayList();
-       private List /* LazyMethodGen */methodGens = new ArrayList();
-       private List /* LazyClassGen */classGens = new ArrayList();
-       private List /* AnnotationGen */annotations = new ArrayList();
+       private final ConstantPool cp;
+       private final World world;
+       private final String packageName = null;
+
+       private final List /* BcelField */fields = new ArrayList();
+       private final List /* LazyMethodGen */methodGens = new ArrayList();
+       private final List /* LazyClassGen */classGens = new ArrayList();
+       private final List /* AnnotationGen */annotations = new ArrayList();
        private int childCounter = 0;
 
-       private InstructionFactory fact;
+       private final InstructionFactory fact;
 
        private boolean isSerializable = false;
        private boolean hasSerialVersionUIDField = false;
@@ -615,10 +615,10 @@ public final class LazyClassGen {
                writeBack(world);
                byte[] wovenClassFileData = myGen.getJavaClass().getBytes();
                // if is java 6 class file
-               if (myGen.getMajor()>=Constants.MAJOR_1_6 && world.shouldGenerateStackMaps() && AsmDetector.isAsmAround) {
-                       wovenClassFileData = StackMapAdder.addStackMaps(world,wovenClassFileData);
+               if (myGen.getMajor() >= Constants.MAJOR_1_6 && world.shouldGenerateStackMaps() && AsmDetector.isAsmAround) {
+                       wovenClassFileData = StackMapAdder.addStackMaps(world, wovenClassFileData);
                }
-               
+
                WeaverStateInfo wsi = myType.getWeaverState();// getOrCreateWeaverStateInfo();
                if (wsi != null && wsi.isReweavable()) { // && !reweavableDataInserted
                        // reweavableDataInserted = true;
@@ -994,6 +994,7 @@ public final class LazyClassGen {
                                        Constants.INVOKEVIRTUAL));
                } else if (sig.getKind().equals(Member.METHOD)) {
                        BcelWorld w = shadow.getWorld();
+
                        // For methods, push the parts of the signature on.
                        list.append(InstructionFactory.PUSH(getConstantPool(), makeString(sig.getModifiers(w))));
                        list.append(InstructionFactory.PUSH(getConstantPool(), sig.getName()));
@@ -1113,7 +1114,11 @@ public final class LazyClassGen {
                        // this behavior matches the string used by the eclipse compiler for Foo.class literals
                        return t.getSignature().replace('/', '.');
                } else {
-                       return t.getName();
+                       if (t.isParameterizedType()) {
+                               return t.getRawType().getName();
+                       } else {
+                               return t.getName();
+                       }
                }
        }