aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/gnu/java/lang/reflect/TypeSignature.java25
2 files changed, 30 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index cb66ec5..2210d5f 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2003-12-16 Guilhem Lavaux <guilhem@kaffe.org>
+ Helmer Kraemer <hkraemer@freenet.de>
+
+ * gnu/java/lang/reflect/TypeSignature.java (getClassForEncoding):
+ Splitted the method so we can specify an explicit boot loader.
+
2003-12-15 Graydon Hoare <graydon@redhat.com>
* jni/gtk-peer/gdkfont.h: New file.
diff --git a/libjava/gnu/java/lang/reflect/TypeSignature.java b/libjava/gnu/java/lang/reflect/TypeSignature.java
index e9c8861..1cf55a6 100644
--- a/libjava/gnu/java/lang/reflect/TypeSignature.java
+++ b/libjava/gnu/java/lang/reflect/TypeSignature.java
@@ -1,5 +1,5 @@
/* TypeSignature.java -- Class used to compute type signatures
- Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -150,6 +150,29 @@ public class TypeSignature
public static Class getClassForEncoding(String type_code, boolean descriptor)
throws ClassNotFoundException
{
+ return getClassForEncoding(type_code, descriptor, null);
+ }
+
+ /**
+ * This function is the inverse of <code>getEncodingOfClass</code>. This
+ * accepts both object and descriptor formats, but must know which style
+ * of string is being passed in (usually, descriptor should be true).In
+ * descriptor format, "I" is treated as int.class, in object format, it
+ * is treated as a class named I in the unnamed package. It also
+ * accepts a <code>ClassLoader</code>, which is used to load the class.
+ *
+ * @param type_code the class name to decode
+ * @param descriptor if the string is in descriptor format
+ * @param loader the class loader used to load the class
+ * @return the corresponding Class object
+ * @throws ClassNotFoundException if the class cannot be located
+ * @see #getEncodingOfClass(Class, boolean)
+ * @see #getClassForEncoding(String, boolean)
+ */
+ public static Class getClassForEncoding(String type_code, boolean descriptor,
+ ClassLoader loader)
+ throws ClassNotFoundException
+ {
if (descriptor)
{
switch (type_code.charAt(0))