public StackState updateMerged(int pos, StackEntry frame) { List<StackEntry> newContents = new ArrayList<StackEntry>(contents); newContents.remove(pos); newContents.add(pos, frame); return new StackState(newContents, constPool); }
public StackState updateMerged(int pos, StackEntry frame) { List<StackEntry> newContents = new ArrayList<StackEntry>(contents); newContents.remove(pos); newContents.add(pos, frame); return new StackState(newContents, constPool); }
public StackState updateMerged(int pos, StackEntry frame) { List<StackEntry> newContents = new ArrayList<StackEntry>(contents); newContents.remove(pos); newContents.add(pos, frame); return new StackState(newContents, constPool); }
private StackState newStack(StackEntry... pushValues) { ArrayList<StackEntry> ret = new ArrayList<StackEntry>(pushValues.length + contents.size()); ret.addAll(contents); for (StackEntry s : pushValues) { ret.add(s); } return new StackState(ret, constPool); }
private StackState newStack(StackEntry... pushValues) { ArrayList<StackEntry> ret = new ArrayList<StackEntry>(pushValues.length + contents.size()); ret.addAll(contents); for (StackEntry s : pushValues) { ret.add(s); } return new StackState(ret, constPool); }
private StackState newStack(StackEntry... pushValues) { ArrayList<StackEntry> ret = new ArrayList<StackEntry>(pushValues.length + contents.size()); ret.addAll(contents); for (StackEntry s : pushValues) { ret.add(s); } return new StackState(ret, constPool); }
private StackState newStack(StackEntry... pushValues) { ArrayList<StackEntry> ret = new ArrayList<StackEntry>(pushValues.length + contents.size()); ret.addAll(contents); for (StackEntry s : pushValues) { ret.add(s); } return new StackState(ret, constPool); }
private StackState newStack(StackEntry... pushValues) { ArrayList<StackEntry> ret = new ArrayList<StackEntry>(pushValues.length + contents.size()); ret.addAll(contents); for (StackEntry s : pushValues) { ret.add(s); } return new StackState(ret, constPool); }
public StackState swap() { int size = contents.size(); List<StackEntry> newContents = new ArrayList<StackEntry>(contents.subList(0, size - 2)); newContents.add(contents.get(size - 1)); newContents.add(contents.get(size - 2)); return new StackState(newContents, constPool); }
public void setupFrame(String... types) { final LocalVariableState localVariableState = new LocalVariableState(constPool, types); final StackFrame f = new StackFrame(new StackState(constPool), localVariableState, StackFrameType.FULL_FRAME); mergeStackFrames(f); }
public void setupFrame(String ... types) { final LocalVariableState localVariableState = new LocalVariableState(constPool, types); final StackFrame f = new StackFrame(new StackState(constPool), localVariableState, StackFrameType.FULL_FRAME); mergeStackFrames(f); }
public void setupFrame(String... types) { final LocalVariableState localVariableState = new LocalVariableState(constPool, types); final StackFrame f = new StackFrame(new StackState(constPool), localVariableState, StackFrameType.FULL_FRAME); mergeStackFrames(f); }
public void setupFrame(String... types) { final LocalVariableState localVariableState = new LocalVariableState(constPool, types); final StackFrame f = new StackFrame(new StackState(constPool), localVariableState, StackFrameType.FULL_FRAME); mergeStackFrames(f); }
/** * Creates the initial stack frame */ public StackFrame(ClassMethod method) { this.stackState = new StackState(method.getClassFile().getConstPool()); this.localVariableState = new LocalVariableState(method); this.type = StackFrameType.FULL_FRAME; }
/** * Creates the initial stack frame */ public StackFrame(ClassMethod method) { this.stackState = new StackState(method.getClassFile().getConstPool()); this.localVariableState = new LocalVariableState(method); this.type = StackFrameType.FULL_FRAME; }
/** * Creates the initial stack frame */ public StackFrame(ClassMethod method) { this.stackState = new StackState(method.getClassFile().getConstPool()); this.localVariableState = new LocalVariableState(method); this.type = StackFrameType.FULL_FRAME; }
/** * Creates the initial stack frame */ public StackFrame(ClassMethod method) { this.stackState = new StackState(method.getClassFile().getConstPool()); this.localVariableState = new LocalVariableState(method); this.type = StackFrameType.FULL_FRAME; }
/** * Creates the initial stack frame */ public StackFrame(ClassMethod method) { this.stackState = new StackState(method.getClassFile().getConstPool()); this.localVariableState = new LocalVariableState(method); this.type = StackFrameType.FULL_FRAME; }
/** * Marks the current code location as the exception handler and adds the handler to the exception handler table; */ public void exceptionHandlerStart(ExceptionHandler handler) { if (handler.getEnd() == 0) { throw new InvalidBytecodeException( "handler end location must be initialised via exceptionHandlerEnd before calling exceptionHandlerAdd"); } handler.setHandler(currentOffset); exceptionTable.add(handler); mergeStackFrames(new StackFrame(new StackState(handler.getExceptionType(), constPool), handler.getFrame() .getLocalVariableState(), StackFrameType.FULL_FRAME)); }
/** * Marks the current code location as the exception handler and adds the handler to the exception handler table; */ public void exceptionHandlerStart(ExceptionHandler handler) { if (handler.getEnd() == 0) { throw new InvalidBytecodeException( "handler end location must be initialised via exceptionHandlerEnd before calling exceptionHandlerAdd"); } handler.setHandler(currentOffset); exceptionTable.add(handler); mergeStackFrames(new StackFrame(new StackState(handler.getExceptionType(), constPool), handler.getFrame() .getLocalVariableState(), StackFrameType.FULL_FRAME)); }