natResourceBundle.cc: Include ArrayIndexOutOfBoundsException.h.
authorAndrew Haley <aph@redhat.com>
Fri, 20 Dec 2002 02:06:21 +0000 (02:06 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Fri, 20 Dec 2002 02:06:21 +0000 (02:06 +0000)
2002-12-19  Andrew Haley  <aph@redhat.com>

* java/util/natResourceBundle.cc: Include
ArrayIndexOutOfBoundsException.h.
(getCallingClassLoader): Don't put upper bound on stack search.
Catch ArrayIndexOutOfBoundsException.

From-SVN: r60348

libjava/ChangeLog
libjava/java/util/natResourceBundle.cc

index 64c58d0da161d5ea0b0151056f204da0a05f89ff..75c44a47a1cee89e51741a5aaa7ada722ff39b67 100644 (file)
@@ -1,3 +1,10 @@
+2002-12-19  Andrew Haley  <aph@redhat.com>
+
+       * java/util/natResourceBundle.cc: Include
+       ArrayIndexOutOfBoundsException.h.
+       (getCallingClassLoader): Don't put upper bound on stack search.
+       Catch ArrayIndexOutOfBoundsException.
+
 2002-12-19  Tom Tromey  <tromey@redhat.com>
 
        * libtool-version: Increased `current'.
index 21a9565c9961027fa4e56e9e5ea8dd7bd46e90d6..adb83f92b26154afd57c1ea9695a9b1b4b347598 100644 (file)
@@ -16,17 +16,24 @@ details.  */
 #include <java/lang/SecurityManager.h>
 #include <java/lang/ClassLoader.h>
 #include <java/lang/Class.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
 #include <gnu/gcj/runtime/StackTrace.h>
 
 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;
 }