aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@albatross.co.nz>2001-02-14 05:32:31 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2001-02-14 05:32:31 +0000
commit97a4d32ec6b8e1ea688b2ccd8ba54b8597227c79 (patch)
tree4f2a41fd0521db9e0327c39ffe966d5f227e8cf6 /libjava/java/lang
parenta142a996267f9c8adf239a565725174265c67749 (diff)
downloadgcc-97a4d32ec6b8e1ea688b2ccd8ba54b8597227c79.zip
gcc-97a4d32ec6b8e1ea688b2ccd8ba54b8597227c79.tar.gz
gcc-97a4d32ec6b8e1ea688b2ccd8ba54b8597227c79.tar.bz2
natClass.cc (getSignature): Don't try to dereference param_types if it is null.
* java/lang/natClass.cc (getSignature): Don't try to dereference param_types if it is null. Instead, take this to mean "no parameters". * java/lang/TreeMap.java (TreeIterator.next): Throw NoSuchElementException in preference to ConcurrentModificationException. (TreeIterator.remove): Throw IllegalStateException in preference to ConcurrentModificationException. (SubMap.firstKey): Do a better check for empty SubMap, and if it is, throw a NoSuchElementException. (SubMap.lastKey): Likewise. From-SVN: r39658
Diffstat (limited to 'libjava/java/lang')
-rw-r--r--libjava/java/lang/natClass.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 6678b77..a1008d6 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -290,8 +290,12 @@ java::lang::Class::getSignature (JArray<jclass> *param_types,
java::lang::StringBuffer *buf = new java::lang::StringBuffer ();
buf->append((jchar) '(');
jclass *v = elements (param_types);
- for (int i = 0; i < param_types->length; ++i)
- v[i]->getSignature(buf);
+ // A NULL param_types means "no parameters".
+ if (param_types != NULL)
+ {
+ for (int i = 0; i < param_types->length; ++i)
+ v[i]->getSignature(buf);
+ }
buf->append((jchar) ')');
if (is_constructor)
buf->append((jchar) 'V');