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