Fix parameter indexing for longs and doubles

This commit is contained in:
Andrey Breslav
2013-05-12 16:05:47 +02:00
parent cae2a5e96f
commit 098cf477f4
@@ -389,7 +389,7 @@ public class InterceptionInstrumenter {
Type[] parameterTypes = Type.getArgumentTypes(instrumentedMethodDesc);
boolean isStatic = (access & ACC_STATIC) != 0;
int base = isStatic ? 0 : 1;
int parametersUsed = 0;
int parameterOffset = 0;
for (int i = 0; i < parameterCount; i++) {
if (i == methodData.getThisParameterIndex()) {
if (isStatic) {
@@ -408,8 +408,9 @@ public class InterceptionInstrumenter {
ia.aconst(instrumentedMethodDesc);
}
else {
ia.load(base + parametersUsed, parameterTypes[parametersUsed]);
parametersUsed++;
Type type = parameterTypes[parameterOffset];
ia.load(base + parameterOffset, type);
parameterOffset += type.getSize();
}
}