Browse Source

250091: test and fix

tags/V1_6_3rc1
aclement 15 years ago
parent
commit
86448d8279
1 changed files with 19 additions and 14 deletions
  1. 19
    14
      weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java

+ 19
- 14
weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java View 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();
}
}
}


Loading…
Cancel
Save