| // 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 <config.h> | |
| #include <platform.h> | |
| #include <string.h> | |
| #pragma implementation "Logger.h" | |
| #include <gcj/cni.h> | |
| #include <jvm.h> | |
| #include <java-stack.h> | |
| #include <java/lang/Object.h> | |
| #include <java/lang/Class.h> | |
| #include <java/util/logging/Logger.h> | |
| #include <java/lang/StackTraceElement.h> | |
| #include <java/lang/ArrayIndexOutOfBoundsException.h> | |
| using namespace java::util::logging; | |
| java::lang::StackTraceElement* | |
| java::util::logging::Logger::getCallerStackFrame () | |
| { | |
| jclass klass = NULL; | |
| _Jv_Method *meth = NULL; | |
| _Jv_StackTrace::GetCallerInfo (&Logger::class$, &klass, &meth); | |
| jstring meth_name = NULL; | |
| jstring klass_name = NULL; | |
| if (klass != NULL) | |
| klass_name = klass->getName(); | |
| if (meth != NULL) | |
| meth_name = _Jv_NewStringUtf8Const (meth->name); | |
| java::lang::StackTraceElement *e | |
| = new java::lang::StackTraceElement | |
| (JvNewStringUTF (""), 0, klass_name, meth_name, false); | |
| return e; | |
| } |