本文整理汇总了Java中org.objectweb.asm.tree.AbstractInsnNode.LABEL属性的典型用法代码示例。如果您正苦于以下问题:Java AbstractInsnNode.LABEL属性的具体用法?Java AbstractInsnNode.LABEL怎么用?Java AbstractInsnNode.LABEL使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.objectweb.asm.tree.AbstractInsnNode
的用法示例。
在下文中一共展示了AbstractInsnNode.LABEL属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getOrFindInstruction
public static AbstractInsnNode getOrFindInstruction(AbstractInsnNode firstInsnToCheck, boolean reverseDirection) {
for (AbstractInsnNode instruction = firstInsnToCheck; instruction != null; instruction = reverseDirection ? instruction.getPrevious() : instruction.getNext()) {
if (instruction.getType() != AbstractInsnNode.LABEL && instruction.getType() != AbstractInsnNode.LINE)
return instruction;
}
return null;
}
示例2: populate
private void populate(InsnList opcodes) {
int selected = -1, labelCount = 0;;
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
for (int i = 0; i < opcodes.size(); i++) {
AbstractInsnNode ain = opcodes.get(i);
if (ain.getType() == AbstractInsnNode.LABEL) {
LabelNode label = (LabelNode) ain;
String s = i + ".";
if (list != null) {
s += " : " + list.getLabelName(ain);
}
labels.put(s, label);
model.addElement(s);
if (label.equals(initial)) {
selected = labelCount;
}
labelCount++;
}
}
combo.setModel(model);
combo.setSelectedIndex(selected);
combo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
updater.accept(labels.get(e.getItem()));
if (list != null) {
list.repaint();
}
}
});
}
示例3: updateState
private void updateState(AbstractInsnNode insn) {
switch (insn.getType()) {
case AbstractInsnNode.INSN:
updateState((InsnNode) insn);
break;
case AbstractInsnNode.INT_INSN:
updateState((IntInsnNode) insn);
break;
case AbstractInsnNode.VAR_INSN:
updateState((VarInsnNode) insn);
break;
case AbstractInsnNode.TYPE_INSN:
updateState((TypeInsnNode) insn);
break;
case AbstractInsnNode.FIELD_INSN:
updateState((FieldInsnNode) insn);
break;
case AbstractInsnNode.METHOD_INSN:
updateState((MethodInsnNode) insn);
break;
case AbstractInsnNode.INVOKE_DYNAMIC_INSN:
updateState((InvokeDynamicInsnNode) insn);
break;
case AbstractInsnNode.JUMP_INSN:
updateState((JumpInsnNode) insn);
break;
case AbstractInsnNode.LABEL:
updateState((LabelNode) insn);
break;
case AbstractInsnNode.LDC_INSN:
updateState((LdcInsnNode) insn);
break;
case AbstractInsnNode.IINC_INSN:
updateState((IincInsnNode) insn);
break;
case AbstractInsnNode.TABLESWITCH_INSN:
updateState((TableSwitchInsnNode) insn);
break;
case AbstractInsnNode.LOOKUPSWITCH_INSN:
updateState((LookupSwitchInsnNode) insn);
break;
case AbstractInsnNode.MULTIANEWARRAY_INSN:
updateState((MultiANewArrayInsnNode) insn);
break;
case AbstractInsnNode.LINE:
updateState((LineNumberNode) insn);
break;
default:
throw new Unreachable("Unexpected instruction " + insn);
}
}
示例4: build
private void build(AbstractInsnNode insn, IRBuilder builder) {
switch (insn.getType()) {
case AbstractInsnNode.INSN:
build((InsnNode) insn, builder);
break;
case AbstractInsnNode.INT_INSN:
build((IntInsnNode) insn, builder);
break;
case AbstractInsnNode.VAR_INSN:
build((VarInsnNode) insn, builder);
break;
case AbstractInsnNode.TYPE_INSN:
build((TypeInsnNode) insn, builder);
break;
case AbstractInsnNode.FIELD_INSN:
build((FieldInsnNode) insn, builder);
break;
case AbstractInsnNode.METHOD_INSN:
build((MethodInsnNode) insn, builder);
break;
case AbstractInsnNode.INVOKE_DYNAMIC_INSN:
build((InvokeDynamicInsnNode) insn, builder);
break;
case AbstractInsnNode.JUMP_INSN:
build((JumpInsnNode) insn, builder);
break;
case AbstractInsnNode.LABEL:
build((LabelNode) insn, builder);
break;
case AbstractInsnNode.LDC_INSN:
build((LdcInsnNode) insn, builder);
break;
case AbstractInsnNode.IINC_INSN:
build((IincInsnNode) insn, builder);
break;
case AbstractInsnNode.TABLESWITCH_INSN:
build((TableSwitchInsnNode) insn, builder);
break;
case AbstractInsnNode.LOOKUPSWITCH_INSN:
build((LookupSwitchInsnNode) insn, builder);
break;
case AbstractInsnNode.MULTIANEWARRAY_INSN:
build((MultiANewArrayInsnNode) insn, builder);
break;
case AbstractInsnNode.LINE:
build((LineNumberNode) insn, builder);
break;
default:
throw new Unreachable("Unexpected instruction " + insn);
}
}
示例5: populate
private void populate() {
switch (opcode.getType()) {
case AbstractInsnNode.INSN:
populate(OpcodeUtil.getInsnSubset(OpcodeUtil.opcodeToName(opcode.getOpcode())));
break;
case AbstractInsnNode.INT_INSN:
populate(OpcodeUtil.OPS_INT);
break;
case AbstractInsnNode.VAR_INSN:
populate(OpcodeUtil.OPS_VAR);
break;
case AbstractInsnNode.TYPE_INSN:
populate(OpcodeUtil.OPS_TYPE);
break;
case AbstractInsnNode.FIELD_INSN:
populate(OpcodeUtil.OPS_FIELD);
break;
case AbstractInsnNode.METHOD_INSN:
populate(OpcodeUtil.OPS_METHOD);
break;
case AbstractInsnNode.INVOKE_DYNAMIC_INSN:
populate(OpcodeUtil.OPS_INDY_METHOD);
break;
case AbstractInsnNode.JUMP_INSN:
populate(OpcodeUtil.OPS_JUMP);
break;
case AbstractInsnNode.LDC_INSN:
populate(OpcodeUtil.OPS_LDC);
break;
case AbstractInsnNode.IINC_INSN:
populate(OpcodeUtil.OPS_IINC);
break;
case AbstractInsnNode.TABLESWITCH_INSN:
populate(OpcodeUtil.OPS_TABLESWITCH);
break;
case AbstractInsnNode.LOOKUPSWITCH_INSN:
populate(OpcodeUtil.OPS_LOOKUPSWITCH);
break;
case AbstractInsnNode.MULTIANEWARRAY_INSN:
populate(OpcodeUtil.OPS_MULTIANEWARRAY);
break;
case AbstractInsnNode.LABEL:
case AbstractInsnNode.LINE:
break;
case AbstractInsnNode.FRAME:
populateFrames(OpcodeUtil.OPS_FRAME);
break;
}
}