@Override public FrameInstance getCallerFrame() { DefaultFrameInstance currentFrame = getThreadLocalStackTrace(); if (currentFrame != null) { return currentFrame.callerFrame; } else { return null; } }
@Override public FrameInstance getCallerFrame() { DefaultFrameInstance currentFrame = getThreadLocalStackTrace(); if (currentFrame != null) { return currentFrame.callerFrame; } else { return null; } }
@Override public FrameInstance getCurrentFrame() { return getThreadLocalStackTrace(); }
@Override public FrameInstance getCurrentFrame() { return getThreadLocalStackTrace(); }
public void pushFrame(FrameInstance frame) { getThreadLocalStackTrace().addFirst(frame); }
public void popFrame() { getThreadLocalStackTrace().removeFirst(); }
@Override public <T> T iterateFrames(FrameInstanceVisitor<T> visitor) { T result = null; DefaultFrameInstance frameInstance = getThreadLocalStackTrace(); while (frameInstance != null) { result = visitor.visitFrame(frameInstance); if (result != null) { return result; } frameInstance = frameInstance.callerFrame; } return result; }
@Override public FrameInstance getCallerFrame() { return getThreadLocalStackTrace().peekFirst(); }
@Override public <T> T iterateFrames(FrameInstanceVisitor<T> visitor) { T result = null; for (FrameInstance frameInstance : getThreadLocalStackTrace()) { result = visitor.visitFrame(frameInstance); if (result != null) { return result; } } return result; }
@Override public <T> T iterateFrames(FrameInstanceVisitor<T> visitor) { T result = null; DefaultFrameInstance frameInstance = getThreadLocalStackTrace(); while (frameInstance != null) { result = visitor.visitFrame(frameInstance); if (result != null) { return result; } frameInstance = frameInstance.callerFrame; } return result; }
void pushFrame(VirtualFrame frame, CallTarget target) { setThreadLocalStackTrace(new DefaultFrameInstance(frame, target, null, getThreadLocalStackTrace())); }
void pushFrame(VirtualFrame frame, CallTarget target) { setThreadLocalStackTrace(new DefaultFrameInstance(frame, target, null, getThreadLocalStackTrace())); }
void pushFrame(VirtualFrame frame, CallTarget target, Node parentCallNode) { DefaultFrameInstance currentFrame = getThreadLocalStackTrace(); // we need to ensure that frame instances are immutable so we need to recreate the parent // frame if (currentFrame != null) { currentFrame = new DefaultFrameInstance(currentFrame.frame, currentFrame.target, parentCallNode, currentFrame.callerFrame); } setThreadLocalStackTrace(new DefaultFrameInstance(frame, target, null, currentFrame)); }
void popFrame() { DefaultFrameInstance callerFrame = getThreadLocalStackTrace().callerFrame; if (callerFrame != null) { setThreadLocalStackTrace(new DefaultFrameInstance(callerFrame.frame, callerFrame.target, null, callerFrame.callerFrame)); } else { setThreadLocalStackTrace(null); } }
void popFrame() { DefaultFrameInstance callerFrame = getThreadLocalStackTrace().callerFrame; if (callerFrame != null) { setThreadLocalStackTrace(new DefaultFrameInstance(callerFrame.frame, callerFrame.target, null, callerFrame.callerFrame)); } else { setThreadLocalStackTrace(null); } }
void pushFrame(VirtualFrame frame, CallTarget target, Node parentCallNode) { DefaultFrameInstance currentFrame = getThreadLocalStackTrace(); // we need to ensure that frame instances are immutable so we need to recreate the parent // frame if (currentFrame != null) { currentFrame = new DefaultFrameInstance(currentFrame.frame, currentFrame.target, parentCallNode, currentFrame.callerFrame); } setThreadLocalStackTrace(new DefaultFrameInstance(frame, target, null, currentFrame)); }