Geoff et al --
Andrew says the appended patch is required, and I think he's right.
The issue is that the JCL says that Class.forName() takes the
fully-qualified class name, whereas the existing code is trying to
strip the punctuation. This is pretty clearly shown in the examples
in the book -- you should strip the punctuation for something like
"Ljava/lang/String;" but not for "[java/lang/String;".
Ordinarily I would just check this in, but this is (will be) my first
ever Classpath commit and I wanted to make sure I'm not breaking some
rule by committing it.
So, is this ok to commit? Are there any real processes in place for
Classpath commits, or should I just do what I think is right?
2000-04-17 Andrew Haley <[EMAIL PROTECTED]>
* TypeSignature.java (getClassForEncoding): Don't remove
punctuation from the classname of an array element.
Tom
Index: TypeSignature.java
===================================================================
RCS file: /cvs/classpath/gnu/java/lang/reflect/TypeSignature.java,v
retrieving revision 1.6
diff -u -r1.6 TypeSignature.java
--- TypeSignature.java 2000/03/17 00:50:30 1.6
+++ TypeSignature.java 2000/04/17 22:44:05
@@ -1,5 +1,5 @@
/* TypeSignature.java -- Class used to compute type signatures
- Copyright (C) 1998 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -151,8 +151,7 @@
String component = type_code.substring( last_bracket + 1 );
if( component.charAt( 0 ) == 'L' )
- component =
- component.substring( 1, component.length() - 1 ).replace('/', '.');
+ component = component.replace( '/', '.' );
return Class.forName( brackets + component );
}