diff options
author | acolyer <acolyer> | 2005-09-01 12:35:40 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-09-01 12:35:40 +0000 |
commit | 7ed592c3a67299f1680c5ce334a5aa79c1877e61 (patch) | |
tree | 47215c2b9cc05d153a31e871b9f7e2b2796d9c7d | |
parent | 8dee531bd67e50d61793a657e19cc8de9113d9c8 (diff) | |
download | aspectj-7ed592c3a67299f1680c5ce334a5aa79c1877e61.tar.gz aspectj-7ed592c3a67299f1680c5ce334a5aa79c1877e61.zip |
use the orginal (non-synthetic) constructor sig for matching
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java | 3 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/BcelShadow.java | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java index d5f09d801..f50cc7260 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java +++ b/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; diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java index 495656bba..9cad79a29 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java +++ b/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; } |