public List privateFrames()

in core/src/main/java/com/jetbrains/sa/jdi/ThreadReferenceImpl.java [149:177]


    public List<StackFrameImpl> privateFrames(int start, int length)
                              throws IncompatibleThreadStateException  {
        if (myJavaThread == null) {
            // for zombies and yet-to-be-started threads we need to throw exception
            throw new IncompatibleThreadStateException();
        }
        if (frames == null) {
            frames = new ArrayList<StackFrameImpl>(10);
            JavaVFrame myvf = myJavaThread.getLastJavaVFrameDbg();
            int id = 0;
            while (myvf != null) {
                StackFrameImpl myFrame = new StackFrameImpl(this, myvf, id++);
                //fixme jjh null should be a Location
                frames.add(myFrame);
                myvf = JvmUtils.getFrameJavaSender(myvf);
            }
        }

        List<StackFrameImpl> retVal;
        if (frames.size() == 0) {
            return Collections.emptyList();
        } else if (start == 0 && length == -1) {
            retVal = frames;
        } else {
            int toIndex = length == -1 ? frames.size() : start + length;
            retVal = frames.subList(start, toIndex);
        }
        return Collections.unmodifiableList(retVal);
    }