1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "StackTrace.h"
7
8
9StackTrace::StackTrace()
10{
11}
12
13
14StackTrace::~StackTrace()
15{
16	for (int32 i = 0; StackFrame* frame = FrameAt(i); i++)
17		frame->ReleaseReference();
18}
19
20
21bool
22StackTrace::AddFrame(StackFrame* frame)
23{
24	if (fStackFrames.AddItem(frame))
25		return true;
26
27	frame->ReleaseReference();
28	return false;
29}
30
31
32int32
33StackTrace::CountFrames() const
34{
35	return fStackFrames.CountItems();
36}
37
38
39StackFrame*
40StackTrace::FrameAt(int32 index) const
41{
42	return fStackFrames.ItemAt(index);
43}
44