@Override public void visit(InvokeDynamicInstruction insn) { if (insn.getReceiver() == null) { definedVariables = new Variable[0]; } else { definedVariables = new Variable[] { insn.getReceiver() }; } }
@Override public void visit(InvokeDynamicInstruction insn) { if (insn.getReceiver() != null && !used[insn.getReceiver().getIndex()]) { insn.setReceiver(null); } }
@Override public void visit(InvokeDynamicInstruction insn) { List<Variable> args = insn.getArguments(); for (int i = 0; i < args.size(); ++i) { args.set(i, use(args.get(i))); } if (insn.getInstance() != null) { insn.setInstance(use(insn.getInstance())); } if (insn.getReceiver() != null) { insn.setReceiver(define(insn.getReceiver())); } }
@Override public void visit(InvokeDynamicInstruction insn) { if (insn.getReceiver() != null) { insn.setReceiver(map(insn.getReceiver())); } if (insn.getInstance() != null) { insn.setInstance(map(insn.getInstance())); } for (int i = 0; i < insn.getArguments().size(); ++i) { insn.getArguments().set(i, map(insn.getArguments().get(i))); } }
@Override public void visit(InvokeDynamicInstruction insn) { reader.invokeDynamic(insn.getReceiver(), insn.getInstance(), insn.getMethod(), Collections.unmodifiableList(insn.getArguments()), insn.getBootstrapMethod(), Collections.unmodifiableList(insn.getBootstrapArguments())); }
@Override public void visit(InvokeDynamicInstruction insn) { try { output.writeByte(41); output.writeShort(insn.getReceiver() != null ? insn.getReceiver().getIndex() : -1); output.writeShort(insn.getInstance() != null ? insn.getInstance().getIndex() : -1); output.writeInt(symbolTable.lookup(insn.getMethod().toString())); for (int i = 0; i < insn.getArguments().size(); ++i) { output.writeShort(insn.getArguments().get(i).getIndex()); } write(insn.getBootstrapMethod()); output.writeByte(insn.getBootstrapArguments().size()); for (int i = 0; i < insn.getBootstrapArguments().size(); ++i) { write(insn.getBootstrapArguments().get(i)); } } catch (IOException e) { throw new IOExceptionWrapper(e); } }
if (substitutor == null) { NullConstantInstruction nullInsn = new NullConstantInstruction(); nullInsn.setReceiver(indy.getReceiver()); nullInsn.setLocation(indy.getLocation()); insn.replace(nullInsn); agent); ValueEmitter result = substitutor.substitute(callSite, pe); if (result.getVariable() != null && result.getVariable() != indy.getReceiver()) { AssignInstruction assign = new AssignInstruction(); assign.setAssignee(result.getVariable()); assign.setReceiver(indy.getReceiver()); pe.addInstruction(assign);
@Override public void visit(InvokeDynamicInstruction insn) { if (insn.getReceiver() == null) { definedVariables = new Variable[0]; } else { definedVariables = new Variable[] { insn.getReceiver() }; } }
@Override public void visit(InvokeDynamicInstruction insn) { if (insn.getReceiver() != null && !used[insn.getReceiver().getIndex()]) { insn.setReceiver(null); } }
@Override public void visit(InvokeDynamicInstruction insn) { List<Variable> args = insn.getArguments(); for (int i = 0; i < args.size(); ++i) { args.set(i, use(args.get(i))); } if (insn.getInstance() != null) { insn.setInstance(use(insn.getInstance())); } if (insn.getReceiver() != null) { insn.setReceiver(define(insn.getReceiver())); } }
@Override public void visit(InvokeDynamicInstruction insn) { if (insn.getReceiver() != null) { insn.setReceiver(map(insn.getReceiver())); } if (insn.getInstance() != null) { insn.setInstance(map(insn.getInstance())); } for (int i = 0; i < insn.getArguments().size(); ++i) { insn.getArguments().set(i, map(insn.getArguments().get(i))); } }
@Override public void visit(InvokeDynamicInstruction insn) { reader.invokeDynamic(insn.getReceiver(), insn.getInstance(), insn.getMethod(), Collections.unmodifiableList(insn.getArguments()), insn.getBootstrapMethod(), Collections.unmodifiableList(insn.getBootstrapArguments())); }
@Override public void visit(InvokeDynamicInstruction insn) { try { output.writeByte(41); output.writeShort(insn.getReceiver() != null ? insn.getReceiver().getIndex() : -1); output.writeShort(insn.getInstance() != null ? insn.getInstance().getIndex() : -1); output.writeInt(symbolTable.lookup(insn.getMethod().toString())); for (int i = 0; i < insn.getArguments().size(); ++i) { output.writeShort(insn.getArguments().get(i).getIndex()); } write(insn.getBootstrapMethod()); output.writeByte(insn.getBootstrapArguments().size()); for (int i = 0; i < insn.getBootstrapArguments().size(); ++i) { write(insn.getBootstrapArguments().get(i)); } } catch (IOException e) { throw new IOExceptionWrapper(e); } }
if (substitutor == null) { NullConstantInstruction nullInsn = new NullConstantInstruction(); nullInsn.setReceiver(indy.getReceiver()); nullInsn.setLocation(indy.getLocation()); insn.replace(nullInsn); dependencyChecker.getAgent()); ValueEmitter result = substitutor.substitute(callSite, pe); if (result.getVariable() != null && result.getVariable() != indy.getReceiver()) { AssignInstruction assign = new AssignInstruction(); assign.setAssignee(result.getVariable()); assign.setReceiver(indy.getReceiver()); pe.addInstruction(assign);