瀏覽代碼

use the orginal (non-synthetic) constructor sig for matching

tags/preDefaultReweavable
acolyer 19 年之前
父節點
當前提交
7ed592c3a6

+ 3
- 0
weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java 查看文件

@@ -1375,6 +1375,9 @@ class BcelClassWeaver implements IClassWeaver {
if (superOrThisCall == null) return false;

enclosingShadow = BcelShadow.makeConstructorExecution(world, mg, superOrThisCall);
if (mg.getEffectiveSignature() != null) {
enclosingShadow.setMatchingSignature(mg.getEffectiveSignature().getEffectiveSignature());
}
// walk the body
boolean beforeSuperOrThisCall = true;

+ 8
- 1
weaver/src/org/aspectj/weaver/bcel/BcelShadow.java 查看文件

@@ -592,12 +592,16 @@ public class BcelShadow extends Shadow {
BcelWorld world,
LazyMethodGen constructor)
{
return new BcelShadow(
BcelShadow ret = new BcelShadow(
world,
Initialization,
world.makeJoinPointSignature(constructor),
constructor,
null);
if (constructor.getEffectiveSignature() != null) {
ret.setMatchingSignature(constructor.getEffectiveSignature().getEffectiveSignature());
}
return ret;
}

public static BcelShadow makeUnfinishedPreinitialization(
@@ -611,6 +615,9 @@ public class BcelShadow extends Shadow {
constructor,
null);
ret.fallsThrough = true;
if (constructor.getEffectiveSignature() != null) {
ret.setMatchingSignature(constructor.getEffectiveSignature().getEffectiveSignature());
}
return ret;
}

Loading…
取消
儲存