aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2009-02-27 23:28:35 +0000
committeraclement <aclement>2009-02-27 23:28:35 +0000
commit8ab8418959144feced704582e8c4ea123142f293 (patch)
treee012306d4746981a27dca1326621f0d0d2f6ef19
parent0317807e6cb65e3e018a41a3200975e06047a011 (diff)
downloadaspectj-8ab8418959144feced704582e8c4ea123142f293.tar.gz
aspectj-8ab8418959144feced704582e8c4ea123142f293.zip
266564: annotation style inline problem for double slot var types
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelShadow.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
index b1f07b039..086b8f166 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
@@ -2158,6 +2158,7 @@ public class BcelShadow extends Shadow {
proceedVarList.add(new BcelVar(targetVar.getType(), extraParamOffset));
extraParamOffset += targetVar.getType().getSize();
}
+ int idx = 0;
for (int i = 0, len = getArgCount(); i < len; i++) {
argsToCallLocalAdviceMethodWith.add(argVars[i]);
proceedVarList.add(new BcelVar(argVars[i].getType(), extraParamOffset));
@@ -2533,6 +2534,7 @@ public class BcelShadow extends Shadow {
int localJp = localAdviceMethod.allocateLocal(proceedingJpType);
ret.append(InstructionFactory.createStore(proceedingJpType, localJp));
+ int idx = 0;
for (int i = 0, len = callbackMethod.getArgumentTypes().length; i < len; i++) {
Type stateType = callbackMethod.getArgumentTypes()[i];
/* ResolvedType stateTypeX = */
@@ -2547,8 +2549,10 @@ public class BcelShadow extends Shadow {
// // ));
// // cast ?
//
+ idx++;
} else {
- ret.append(InstructionFactory.createLoad(stateType, i));
+ ret.append(InstructionFactory.createLoad(stateType, idx));
+ idx += stateType.getSize();
}
}
}