List of usage examples for org.objectweb.asm Opcodes INTEGER
Integer INTEGER
To view the source code for org.objectweb.asm Opcodes INTEGER.
Click Source Link
From source file:org.yx.asm.AsmUtils.java
License:Apache License
public static List<Object> getImplicitFrame(String desc) { List<Object> locals = new ArrayList<>(); if (desc.isEmpty()) { return locals; }/*from ww w.j ava 2 s . c o m*/ int i = 0; while (desc.length() > i) { int j = i; switch (desc.charAt(i++)) { case 'Z': case 'C': case 'B': case 'S': case 'I': locals.add(Opcodes.INTEGER); break; case 'F': locals.add(Opcodes.FLOAT); break; case 'J': locals.add(Opcodes.LONG); break; case 'D': locals.add(Opcodes.DOUBLE); break; case '[': while (desc.charAt(i) == '[') { ++i; } if (desc.charAt(i) == 'L') { ++i; while (desc.charAt(i) != ';') { ++i; } } locals.add(desc.substring(j, ++i)); break; case 'L': while (desc.charAt(i) != ';') { ++i; } locals.add(desc.substring(j + 1, i++)); break; default: break; } } return locals; }
From source file:org.yx.asm.ProxyMethodWritor.java
License:Apache License
private static int load(MethodVisitor mv, Object type, int frameIndex) { if (Opcodes.INTEGER.equals(type)) { mv.visitVarInsn(ILOAD, frameIndex); return frameIndex + SINGLE; }/* w w w. j a v a2 s . c o m*/ if (Opcodes.LONG.equals(type)) { mv.visitVarInsn(LLOAD, frameIndex); return frameIndex + WIDTH; } if (Opcodes.FLOAT.equals(type)) { mv.visitVarInsn(FLOAD, frameIndex); return frameIndex + SINGLE; } if (Opcodes.DOUBLE.equals(type)) { mv.visitVarInsn(DLOAD, frameIndex); return frameIndex + WIDTH; } mv.visitVarInsn(ALOAD, frameIndex); return frameIndex + SINGLE; }
From source file:org.yx.asm.ProxyMethodWritor.java
License:Apache License
private static void store(MethodVisitor mv, Object type, int frameIndex) { if (Opcodes.INTEGER.equals(type)) { mv.visitVarInsn(ISTORE, frameIndex); } else if (Opcodes.LONG.equals(type)) { mv.visitVarInsn(LSTORE, frameIndex); } else if (Opcodes.FLOAT.equals(type)) { mv.visitVarInsn(FSTORE, frameIndex); } else if (Opcodes.DOUBLE.equals(type)) { mv.visitVarInsn(DSTORE, frameIndex); } else {/*from ww w . j a v a2 s .com*/ mv.visitVarInsn(ASTORE, frameIndex); } }
From source file:org.yx.asm.ProxyMethodWritor.java
License:Apache License
private static void jReturn(MethodVisitor mv, Object type) { if (Opcodes.INTEGER.equals(type)) { mv.visitInsn(IRETURN);//from w w w.j a va 2 s.com } else if (Opcodes.LONG.equals(type)) { mv.visitInsn(LRETURN); } else if (Opcodes.FLOAT.equals(type)) { mv.visitInsn(FRETURN); } else if (Opcodes.DOUBLE.equals(type)) { mv.visitInsn(DRETURN); } else { mv.visitInsn(ARETURN); } }