blob: 5c68b1722c7b3b660e1bc4849823443dea3cecd6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
// 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;
}
|