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;
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;
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()));
// 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();
+ }
}
}