Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- InvokeDynamicInsnNode newInsn = null;
- if (insn.getOpcode() == 184) {
- opcode1 = String.valueOf(insn.getOpcode() / 100);
- opcode2 = String.valueOf(insn.getOpcode() / 10 % 10);
- opcode3 = String.valueOf(insn.getOpcode() % 10);
- handle = new Handle(6, classNode.name, bootstrapMethodName,
- "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
- false);
- newInsn = new InvokeDynamicInsnNode(Generator.returnString(),
- ((MethodInsnNode) insn).desc, handle, opcode1, opcode2, opcode3,
- ((MethodInsnNode) insn).owner.replace("/", "."),
- ((MethodInsnNode) insn).name, ((MethodInsnNode) insn).desc,
- Generator.returnString());
- method.instructions.set(insn, newInsn);
- flag = true;
- } else if (insn.getOpcode() == 182 || insn.getOpcode() == 185) {
- opcode1 = String.valueOf(insn.getOpcode() / 100);
- opcode2 = String.valueOf(insn.getOpcode() / 10 % 10);
- opcode3 = String.valueOf(insn.getOpcode() % 10);
- handle = new Handle(6, classNode.name, bootstrapMethodName,
- "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
- false);
- newInsn = new InvokeDynamicInsnNode(Generator.returnString(),
- ((MethodInsnNode) insn).desc.replace("(", "(Ljava/lang/Object;"), handle,
- opcode1, opcode2, opcode3, ((MethodInsnNode) insn).owner.replace("/", "."),
- ((MethodInsnNode) insn).name, ((MethodInsnNode) insn).desc,
- Generator.returnString());
- method.instructions.set(insn, newInsn);
- flag = true;
- }
- if (!flag || (type = Type.getType(((MethodInsnNode) insn).desc)).getReturnType()
- .getSort() != 9)
- continue;
- method.instructions.insert(newInsn,
- new TypeInsnNode(192, type.getReturnType().getInternalName()));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement