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;
 | |
| }
 |