diff options
author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-14 19:26:21 +0000 |
---|---|---|
committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-14 19:26:21 +0000 |
commit | aa2c5f22aeefeae27a496c8fc8bc31782a41813e (patch) | |
tree | 2e17559f497789f129243a293ab395fab51b8f1c /libjava/java | |
parent | 7df111ad7fa16b8221037af1cdaa42e0e667e16e (diff) | |
download | ppe42-gcc-aa2c5f22aeefeae27a496c8fc8bc31782a41813e.tar.gz ppe42-gcc-aa2c5f22aeefeae27a496c8fc8bc31782a41813e.zip |
2003-01-14 Andrew Haley <aph@redhat.com>
* java/lang/natRuntime.cc (_load): StackTrace access needs to be
in a try block.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61293 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/natRuntime.cc | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc index f5177b0aa35..f74a1e76bcf 100644 --- a/libjava/java/lang/natRuntime.cc +++ b/libjava/java/lang/natRuntime.cc @@ -29,6 +29,7 @@ details. */ #include <java/lang/ConcreteProcess.h> #include <java/lang/ClassLoader.h> #include <gnu/gcj/runtime/StackTrace.h> +#include <java/lang/ArrayIndexOutOfBoundsException.h> #include <jni.h> @@ -181,19 +182,26 @@ java::lang::Runtime::_load (jstring path, jboolean do_search) ClassLoader *sys = ClassLoader::getSystemClassLoader(); ClassLoader *look = NULL; gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(10); - for (int i = 0; i < 10; ++i) - { - jclass klass = t->classAt(i); - if (klass != NULL) + try + { + for (int i = 0; i < 10; ++i) { - ClassLoader *loader = klass->getClassLoaderInternal(); - if (loader != NULL && loader != sys) + jclass klass = t->classAt(i); + if (klass != NULL) { - look = loader; - break; + ClassLoader *loader = klass->getClassLoaderInternal(); + if (loader != NULL && loader != sys) + { + look = loader; + break; + } } } } + catch (::java::lang::ArrayIndexOutOfBoundsException *e) + { + } + if (look != NULL) { // Don't include solib prefix in string passed to |