123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /*
- * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. Alternatively, the contents of this file may be used under
- * the terms of the GNU Lesser General Public License Version 2.1 or later,
- * or the Apache License Version 2.0.
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- */
- package javassist.bytecode.analysis;
-
- import javassist.bytecode.CodeIterator;
- import javassist.bytecode.Opcode;
-
- /**
- * A set of common utility methods.
- *
- * @author Jason T. Greene
- */
- public class Util implements Opcode {
- public static int getJumpTarget(int pos, CodeIterator iter) {
- int opcode = iter.byteAt(pos);
- pos += (opcode == JSR_W || opcode == GOTO_W) ? iter.s32bitAt(pos + 1) : iter.s16bitAt(pos + 1);
- return pos;
- }
-
- public static boolean isJumpInstruction(int opcode) {
- return (opcode >= IFEQ && opcode <= JSR) || opcode == IFNULL || opcode == IFNONNULL || opcode == JSR_W || opcode == GOTO_W;
- }
-
- public static boolean isGoto(int opcode) {
- return opcode == GOTO || opcode == GOTO_W;
- }
-
- public static boolean isJsr(int opcode) {
- return opcode == JSR || opcode == JSR_W;
- }
-
- public static boolean isReturn(int opcode) {
- return (opcode >= IRETURN && opcode <= RETURN);
- }
- }
|