Java Code Examples for org.apache.bcel.Const#TABLESWITCH
The following examples show how to use
org.apache.bcel.Const#TABLESWITCH .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DismantleBytecode.java From spotbugs with GNU Lesser General Public License v2.1 | 5 votes |
public void printOpCode(int seen) { System.out.print(" " + this.getClass().getSimpleName() + ": [" + formatter.format(getPC()) + "] " + Const.getOpcodeName(seen)); if ((seen == Const.INVOKEVIRTUAL) || (seen == Const.INVOKESPECIAL) || (seen == Const.INVOKEINTERFACE) || (seen == Const.INVOKESTATIC)) { System.out.print(" " + getClassConstantOperand() + "." + getNameConstantOperand() + " " + getSigConstantOperand()); } else if (seen == Const.LDC || seen == Const.LDC_W || seen == Const.LDC2_W) { Constant c = getConstantRefOperand(); if (c instanceof ConstantString) { System.out.print(" \"" + getStringConstantOperand() + "\""); } else if (c instanceof ConstantClass) { System.out.print(" " + getClassConstantOperand()); } else { System.out.print(" " + c); } } else if ((seen == Const.ALOAD) || (seen == Const.ASTORE)) { System.out.print(" " + getRegisterOperand()); } else if ((seen == Const.GOTO) || (seen == Const.GOTO_W) || (seen == Const.IF_ACMPEQ) || (seen == Const.IF_ACMPNE) || (seen == Const.IF_ICMPEQ) || (seen == Const.IF_ICMPGE) || (seen == Const.IF_ICMPGT) || (seen == Const.IF_ICMPLE) || (seen == Const.IF_ICMPLT) || (seen == Const.IF_ICMPNE) || (seen == Const.IFEQ) || (seen == Const.IFGE) || (seen == Const.IFGT) || (seen == Const.IFLE) || (seen == Const.IFLT) || (seen == Const.IFNE) || (seen == Const.IFNONNULL) || (seen == Const.IFNULL)) { System.out.print(" " + getBranchTarget()); } else if ((seen == Const.NEW) || (seen == Const.INSTANCEOF)) { System.out.print(" " + getClassConstantOperand()); } else if ((seen == Const.TABLESWITCH) || (seen == Const.LOOKUPSWITCH)) { System.out.print(" ["); int switchPC = getPC(); int[] offsets = getSwitchOffsets(); for (int offset : offsets) { System.out.print((switchPC + offset) + ","); } System.out.print((switchPC + getDefaultSwitchOffset()) + "]"); } System.out.println(); }
Example 2
Source File: Noise.java From spotbugs with GNU Lesser General Public License v2.1 | 4 votes |
@Override public void sawOpcode(int seen) { int priority; switch (seen) { case Const.INVOKEINTERFACE: case Const.INVOKEVIRTUAL: case Const.INVOKESPECIAL: case Const.INVOKESTATIC: hq.pushHash(getClassConstantOperand()); if (getNameConstantOperand().indexOf('$') == -1) { hq.pushHash(getNameConstantOperand()); } hq.pushHash(getSigConstantOperand()); priority = hq.getPriority(); if (priority <= Priorities.LOW_PRIORITY) { accumulator.accumulateBug(new BugInstance(this, "NOISE_METHOD_CALL", priority).addClassAndMethod(this) .addCalledMethod(this), this); } break; case Const.GETFIELD: case Const.PUTFIELD: case Const.GETSTATIC: case Const.PUTSTATIC: hq.pushHash(getClassConstantOperand()); if (getNameConstantOperand().indexOf('$') == -1) { hq.pushHash(getNameConstantOperand()); } hq.pushHash(getSigConstantOperand()); priority = hq.getPriority(); if (priority <= Priorities.LOW_PRIORITY) { accumulator.accumulateBug(new BugInstance(this, "NOISE_FIELD_REFERENCE", priority).addClassAndMethod(this) .addReferencedField(this), this); } break; case Const.CHECKCAST: case Const.INSTANCEOF: case Const.NEW: hq.pushHash(getClassConstantOperand()); break; case Const.IFEQ: case Const.IFNE: case Const.IFNONNULL: case Const.IFNULL: case Const.IF_ICMPEQ: case Const.IF_ICMPNE: case Const.IF_ICMPLE: case Const.IF_ICMPGE: case Const.IF_ICMPGT: case Const.IF_ICMPLT: case Const.IF_ACMPEQ: case Const.IF_ACMPNE: case Const.RETURN: case Const.ARETURN: case Const.IRETURN: case Const.MONITORENTER: case Const.MONITOREXIT: case Const.IINC: case Const.NEWARRAY: case Const.TABLESWITCH: case Const.LOOKUPSWITCH: case Const.LCMP: case Const.INEG: case Const.IADD: case Const.IMUL: case Const.ISUB: case Const.IDIV: case Const.IREM: case Const.IXOR: case Const.ISHL: case Const.ISHR: case Const.IUSHR: case Const.IAND: case Const.IOR: case Const.LAND: case Const.LOR: case Const.LADD: case Const.LMUL: case Const.LSUB: case Const.LDIV: case Const.LSHL: case Const.LSHR: case Const.LUSHR: case Const.AALOAD: case Const.AASTORE: case Const.IALOAD: case Const.IASTORE: case Const.BALOAD: case Const.BASTORE: hq.push(seen); priority = hq.getPriority(); if (priority <= Priorities.LOW_PRIORITY) { accumulator.accumulateBug( new BugInstance(this, "NOISE_OPERATION", priority).addClassAndMethod(this).addString(Const.getOpcodeName(seen)), this); } break; default: break; } }
Example 3
Source File: DismantleBytecode.java From spotbugs with GNU Lesser General Public License v2.1 | 2 votes |
/** * Return whether or not given opcode is a switch instruction. * * @param opcode * the opcode * @return true if instruction is a switch, false if not */ public static boolean isSwitch(int opcode) { return opcode == Const.LOOKUPSWITCH || opcode == Const.TABLESWITCH; }