diff options
Diffstat (limited to 'libjava/gnu')
-rw-r--r-- | libjava/gnu/classpath/natVMStackWalker.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libjava/gnu/classpath/natVMStackWalker.cc b/libjava/gnu/classpath/natVMStackWalker.cc index f7eb883..1b336ca 100644 --- a/libjava/gnu/classpath/natVMStackWalker.cc +++ b/libjava/gnu/classpath/natVMStackWalker.cc @@ -80,15 +80,22 @@ gnu::classpath::VMStackWalker::getClassLoader(::java::lang::Class *c) gnu::classpath::VMStackWalker::getCallingClassLoader(void) { _Jv_InitClass (&::gnu::classpath::VMStackWalker::class$); - return - _Jv_StackTrace::GetStackWalkerCallingClass ()->getClassLoaderInternal (); + jclass klass = _Jv_StackTrace::GetStackWalkerCallingClass (); + if (klass) + return klass->getClassLoaderInternal (); + else + return NULL; } ::java::lang::ClassLoader * gnu::classpath::VMStackWalker::getCallingClassLoader(::gnu::gcj::RawData *pc) { _Jv_InitClass (&::gnu::classpath::VMStackWalker::class$); - return GET_CALLING_CLASS(pc)->getClassLoaderInternal (); + jclass klass = GET_CALLING_CLASS(pc); + if (klass) + return klass->getClassLoaderInternal (); + else + return NULL; } ::java::lang::ClassLoader * |