/** * Makes a new frame for an exception handler block invoked from this * frame. * * @param exceptionClass exception that the handler block will handle * @return new frame */ public Frame makeExceptionHandlerStartFrame(CstType exceptionClass) { ExecutionStack newStack = getStack().copy(); newStack.clear(); newStack.push(exceptionClass); return new Frame(getLocals(), newStack, subroutines); }
/** * Makes a new frame for an exception handler block invoked from this * frame. * * @param exceptionClass exception that the handler block will handle * @return new frame */ public Frame makeExceptionHandlerStartFrame(CstType exceptionClass) { ExecutionStack newStack = getStack().copy(); newStack.clear(); newStack.push(exceptionClass); return new Frame(getLocals(), newStack, subroutines); }
/** * Makes a new frame for an exception handler block invoked from this * frame. * * @param exceptionClass exception that the handler block will handle * @return new frame */ public Frame makeExceptionHandlerStartFrame(CstType exceptionClass) { ExecutionStack newStack = getStack().copy(); newStack.clear(); newStack.push(exceptionClass); return new Frame(getLocals(), newStack, subroutines); }
/** * Makes a new frame for an exception handler block invoked from this * frame. * * @param exceptionClass exception that the handler block will handle * @return new frame */ public Frame makeExceptionHandlerStartFrame(CstType exceptionClass) { ExecutionStack newStack = getStack().copy(); newStack.clear(); newStack.push(exceptionClass); return new Frame(getLocals(), newStack, subroutines); }
/** * Makes a new frame for an exception handler block invoked from this * frame. * * @param exceptionClass exception that the handler block will handle * @return new frame */ public Frame makeExceptionHandlerStartFrame(CstType exceptionClass) { ExecutionStack newStack = getStack().copy(); newStack.clear(); newStack.push(exceptionClass); return new Frame(getLocals(), newStack, subroutines); }
/** * Makes a new frame for an exception handler block invoked from this * frame. * * @param exceptionClass exception that the handler block will handle * @return new frame */ public Frame makeExceptionHandlerStartFrame(CstType exceptionClass) { ExecutionStack newStack = getStack().copy(); newStack.clear(); newStack.push(exceptionClass); return new Frame(getLocals(), newStack, subroutines); }
/** * Stores the results of the latest operation into the given frame. If * there is a local target (see {@link #localTarget}), then the sole * result is stored to that target; otherwise any results are pushed * onto the stack. * * @param frame {@code non-null;} frame to operate on */ protected final void storeResults(Frame frame) { if (resultCount < 0) { throw new SimException("results never set"); } if (resultCount == 0) { // Nothing to do. return; } if (localTarget != null) { /* * Note: getLocalTarget() doesn't necessarily return * localTarget directly. */ frame.getLocals().set(getLocalTarget()); } else { ExecutionStack stack = frame.getStack(); for (int i = 0; i < resultCount; i++) { stack.push(results[i]); } } }
stack.setLocal(); stack.push(results[i]);
stack.setLocal(); stack.push(results[i]);
stack.setLocal(); stack.push(results[i]);
stack.setLocal(); stack.push(results[i]);
stack.setLocal(); stack.push(results[i]);