]> source.dussan.org Git - aspectj.git/commitdiff
266564: annotation style inline problem for double slot var types
authoraclement <aclement>
Fri, 27 Feb 2009 23:28:35 +0000 (23:28 +0000)
committeraclement <aclement>
Fri, 27 Feb 2009 23:28:35 +0000 (23:28 +0000)
weaver/src/org/aspectj/weaver/bcel/BcelShadow.java

index b1f07b039d985ecbcf7a0a6583e97ec3661bc7a0..086b8f166af5e50b733ed7e2ecc0a5ff845c97d8 100644 (file)
@@ -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();
                                }
                        }
                }