From 51d6eed48eace41bef16aa1d4401e0fb081e7d5d Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Fri, 20 Dec 2002 02:06:21 +0000 Subject: natResourceBundle.cc: Include ArrayIndexOutOfBoundsException.h. 2002-12-19 Andrew Haley * java/util/natResourceBundle.cc: Include ArrayIndexOutOfBoundsException.h. (getCallingClassLoader): Don't put upper bound on stack search. Catch ArrayIndexOutOfBoundsException. From-SVN: r60348 --- libjava/java/util/natResourceBundle.cc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'libjava/java') diff --git a/libjava/java/util/natResourceBundle.cc b/libjava/java/util/natResourceBundle.cc index 21a9565..adb83f9 100644 --- a/libjava/java/util/natResourceBundle.cc +++ b/libjava/java/util/natResourceBundle.cc @@ -16,17 +16,24 @@ details. */ #include #include #include +#include #include java::lang::ClassLoader * java::util::ResourceBundle::getCallingClassLoader () { gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(6); - for (int i = 3; i < 6; ++i) + try + { + for (int i = 3; ; ++i) + { + jclass klass = t->classAt(i); + if (klass != NULL) + return klass->getClassLoaderInternal(); + } + } + catch (::java::lang::ArrayIndexOutOfBoundsException *e) { - jclass klass = t->classAt(i); - if (klass != NULL) - return klass->getClassLoaderInternal(); } return NULL; } -- cgit v1.1