mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
| // natVMThrowable.cc - Native part of VMThrowable class.
 | |
| 
 | |
| /* Copyright (C) 2003, 2006 Free Software Foundation
 | |
| 
 | |
|    This file is part of libgcj.
 | |
| 
 | |
| This software is copyrighted work licensed under the terms of the
 | |
| Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
 | |
| details.  */
 | |
| 
 | |
| #include <config.h>
 | |
| 
 | |
| #include <stdlib.h>
 | |
| 
 | |
| #include <gcj/cni.h>
 | |
| #include <jvm.h>
 | |
| #include <java-stack.h>
 | |
| 
 | |
| #include <java/lang/Throwable.h>
 | |
| #include <java/lang/VMThrowable.h>
 | |
| 
 | |
| using namespace gnu::gcj;
 | |
| 
 | |
| java::lang::VMThrowable *
 | |
| java::lang::VMThrowable::fillInStackTrace (java::lang::Throwable *)
 | |
| {
 | |
|   using namespace java::lang;
 | |
| 
 | |
|   // Don't trace stack during initialization of the runtime.
 | |
|   if (! gcj::runtimeInitialized)
 | |
|     return NULL;
 | |
|   
 | |
|   _Jv_StackTrace *trace = _Jv_StackTrace::GetStackTrace ();
 | |
|   VMThrowable *vmthrowable = new VMThrowable ();
 | |
|   vmthrowable->data = (RawDataManaged *) trace;
 | |
|   return vmthrowable;
 | |
| }
 | |
| 
 | |
| 
 | |
| JArray< ::java::lang::StackTraceElement *> *
 | |
| java::lang::VMThrowable::getStackTrace (java::lang::Throwable *throwable)
 | |
| {
 | |
|   _Jv_StackTrace *trace = reinterpret_cast <_Jv_StackTrace *> (data);
 | |
|   return _Jv_StackTrace::GetStackTraceElements (trace, throwable);
 | |
| }
 |