diff --git a/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/AbstractArrayTransformation.java b/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/AbstractArrayTransformation.java index eefe1ca..e56b896 100644 --- a/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/AbstractArrayTransformation.java +++ b/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/AbstractArrayTransformation.java @@ -12,7 +12,6 @@ import static org.objectweb.asm.Opcodes.ALOAD; import static org.objectweb.asm.Opcodes.ARETURN; -import static org.objectweb.asm.Opcodes.ILOAD; import static org.objectweb.asm.Opcodes.INVOKESTATIC; import java.lang.reflect.Array; @@ -38,7 +37,7 @@ protected MethodVisitor getMethodVisitor(MethodVisitor parent) { public void visitInsn(int opcode) { if (opcode == ARETURN) { mv.visitVarInsn(ALOAD, 0); // Load Class instance - mv.visitVarInsn(ILOAD, 1); // Load dimension + mv.visitVarInsn(loadDimensionOpcode(), 1); // Load dimension mv.visitMethodInsn(INVOKESTATIC, "de/bodden/tamiflex/playout/rt/ReflLogger", methodName(), methodSignature()); } super.visitInsn(opcode); @@ -50,4 +49,7 @@ public void visitInsn(int opcode) { protected abstract String methodName(); protected abstract String methodSignature(); + + protected abstract int loadDimensionOpcode(); + } diff --git a/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayMultiNewInstanceTransformation.java b/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayMultiNewInstanceTransformation.java index 13d78fd..e1441b6 100644 --- a/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayMultiNewInstanceTransformation.java +++ b/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayMultiNewInstanceTransformation.java @@ -20,6 +20,7 @@ ******************************************************************************/ package de.bodden.tamiflex.playout.transformation.array; +import org.objectweb.asm.Opcodes; import org.objectweb.asm.commons.Method; public class ArrayMultiNewInstanceTransformation extends AbstractArrayTransformation { @@ -37,4 +38,10 @@ protected String methodName() { protected String methodSignature() { return "(Ljava/lang/Class;[I)V"; } + + @Override + protected int loadDimensionOpcode() { + return Opcodes.ALOAD; + } + } diff --git a/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayNewInstanceTransformation.java b/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayNewInstanceTransformation.java index 12389a9..c016e07 100644 --- a/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayNewInstanceTransformation.java +++ b/PlayOutAgent/src/de/bodden/tamiflex/playout/transformation/array/ArrayNewInstanceTransformation.java @@ -10,6 +10,7 @@ ******************************************************************************/ package de.bodden.tamiflex.playout.transformation.array; +import org.objectweb.asm.Opcodes; import org.objectweb.asm.commons.Method; public class ArrayNewInstanceTransformation extends AbstractArrayTransformation { @@ -27,4 +28,9 @@ protected String methodName() { protected String methodSignature() { return "(Ljava/lang/Class;I)V"; } + + @Override + protected int loadDimensionOpcode() { + return Opcodes.ILOAD; + } }