// natLogger.cc - Native part of Logger class. /* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation This Logger is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the Logger "LIBGCJ_LICENSE" for details. */ #include #include #include #pragma implementation "Logger.h" #include #include #include #include #include #include #include java::lang::StackTraceElement* java::util::logging::Logger::getCallerStackFrame () { gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(4); java::lang::Class *klass = NULL; int i = 2; try { // skip until this class while ((klass = t->classAt (i)) != getClass()) i++; // skip the stackentries of this class while ((klass = t->classAt (i)) == getClass() || klass == NULL) i++; } catch (::java::lang::ArrayIndexOutOfBoundsException *e) { // FIXME: RuntimeError } java::lang::StackTraceElement *e = new java::lang::StackTraceElement (JvNewStringUTF (""), 0, klass->getName(), t->methodAt(i), false); return e; }