aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-06-18 22:14:06 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-06-18 22:14:06 +0000
commitd4d17e95f1b281a9db1c727870350206c77f0103 (patch)
tree9ccdcb530d815d09f19c1ab07bfd54136d0b2e85 /libjava/java
parent3b572406c28259bb8dbc1767937bcd965a64b18e (diff)
downloadgcc-d4d17e95f1b281a9db1c727870350206c77f0103.zip
gcc-d4d17e95f1b281a9db1c727870350206c77f0103.tar.gz
gcc-d4d17e95f1b281a9db1c727870350206c77f0103.tar.bz2
re GNATS gcj/260 ("Klass.class" expression should cause Klass to be initialized)
* java/lang/natClass.cc (forName): Removed dead code. Initialize returned class. For PR gcj/260. From-SVN: r34590
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natClass.cc13
1 files changed, 4 insertions, 9 deletions
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 995e631..33ab1a3 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -80,13 +80,6 @@ java::lang::Class::forName (jstring className)
if (! className)
JvThrow (new java::lang::NullPointerException);
-#if 0
- // FIXME: should check syntax of CLASSNAME and throw
- // IllegalArgumentException on failure.
-
- // FIXME: should use class loader from calling method.
- jclass klass = _Jv_FindClass (className, NULL);
-#else
jsize length = _Jv_GetStringUTFLength (className);
char buffer[length];
_Jv_GetStringUTFRegion (className, 0, length, buffer);
@@ -99,8 +92,10 @@ java::lang::Class::forName (jstring className)
jclass klass = (buffer[0] == '['
? _Jv_FindClassFromSignature (name->data, NULL)
: _Jv_FindClass (name, NULL));
-#endif
- if (! klass)
+
+ if (klass)
+ _Jv_InitClass (klass);
+ else
JvThrow (new java::lang::ClassNotFoundException (className));
return klass;