Advertisement
Guest User

Untitled

a guest
May 26th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. InvokeDynamicInsnNode newInsn = null;
  2. if (insn.getOpcode() == 184) {
  3. opcode1 = String.valueOf(insn.getOpcode() / 100);
  4. opcode2 = String.valueOf(insn.getOpcode() / 10 % 10);
  5. opcode3 = String.valueOf(insn.getOpcode() % 10);
  6. handle = new Handle(6, classNode.name, bootstrapMethodName,
  7. "(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;",
  8. false);
  9. newInsn = new InvokeDynamicInsnNode(Generator.returnString(),
  10. ((MethodInsnNode) insn).desc, handle, opcode1, opcode2, opcode3,
  11. ((MethodInsnNode) insn).owner.replace("/", "."),
  12. ((MethodInsnNode) insn).name, ((MethodInsnNode) insn).desc,
  13. Generator.returnString());
  14. method.instructions.set(insn, newInsn);
  15. flag = true;
  16. } else if (insn.getOpcode() == 182 || insn.getOpcode() == 185) {
  17. opcode1 = String.valueOf(insn.getOpcode() / 100);
  18. opcode2 = String.valueOf(insn.getOpcode() / 10 % 10);
  19. opcode3 = String.valueOf(insn.getOpcode() % 10);
  20. handle = new Handle(6, classNode.name, bootstrapMethodName,
  21. "(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;",
  22. false);
  23. newInsn = new InvokeDynamicInsnNode(Generator.returnString(),
  24. ((MethodInsnNode) insn).desc.replace("(", "(Ljava/lang/Object;"), handle,
  25. opcode1, opcode2, opcode3, ((MethodInsnNode) insn).owner.replace("/", "."),
  26. ((MethodInsnNode) insn).name, ((MethodInsnNode) insn).desc,
  27. Generator.returnString());
  28. method.instructions.set(insn, newInsn);
  29. flag = true;
  30. }
  31. if (!flag || (type = Type.getType(((MethodInsnNode) insn).desc)).getReturnType()
  32. .getSort() != 9)
  33. continue;
  34. method.instructions.insert(newInsn,
  35. new TypeInsnNode(192, type.getReturnType().getInternalName()));
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement