/* Generated automatically by jlpp - do not edit. */ #line 1 "lang/StackTrace.jlc" // -*- c++ -*- /* * Jakelib2 - General purpose C++ library * Copyright (C) 2001 Florian Wolff (florian@donuz.de) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * $Id: StackTrace.jlc,v 1.5 2003/09/27 08:10:28 florian Exp $ */ #include "jakelib2.h" #include "jakelib2/lang/Thread.h" #include "jakelib2/lang/StackTrace.h" #include "jakelib2/lang/StackTraceElement.h" using namespace jakelib::lang; using namespace jakelib::util; /*****************************************************************************\ * StackTrace | *****************************************************************************/ StackTrace::StackTrace(int size) { this->size = size; this->stack = (TmpStackTraceElement**) GC_MALLOC(sizeof(TmpStackTraceElement*) * size); this->nextFree = 0; } /*****************************************************************************\ * destroy | *****************************************************************************/ void StackTrace::destroy() { GC_FREE(stack); } /*****************************************************************************\ * push | *****************************************************************************/ void StackTrace::push(TmpStackTraceElement *ste) { if (nextFree < size) { stack[nextFree++] = ste; } } /*****************************************************************************\ * pop | *****************************************************************************/ TmpStackTraceElement* StackTrace::pop() { if (nextFree > 0) { nextFree --; return stack[nextFree]; } else { return null; } } /*****************************************************************************\ * get | *****************************************************************************/ TmpStackTraceElement* StackTrace::get(int idx) { return stack[idx]; } /*****************************************************************************\ * getElemCount | *****************************************************************************/ int StackTrace::getElemCount() { return nextFree; }