root/src/kits/debugger/model/StackTrace.cpp
/*
 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
 * Distributed under the terms of the MIT License.
 */

#include "StackTrace.h"


StackTrace::StackTrace()
{
}


StackTrace::~StackTrace()
{
        for (int32 i = 0; StackFrame* frame = FrameAt(i); i++)
                frame->ReleaseReference();
}


bool
StackTrace::AddFrame(StackFrame* frame)
{
        if (fStackFrames.AddItem(frame))
                return true;

        frame->ReleaseReference();
        return false;
}


int32
StackTrace::CountFrames() const
{
        return fStackFrames.CountItems();
}


StackFrame*
StackTrace::FrameAt(int32 index) const
{
        return fStackFrames.ItemAt(index);
}