mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
// 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;
 | 
						|
}
 |