From: Dalibor Topic Date: Tue, 2 Dec 2003 17:05:40 +0000 (+0000) Subject: Reported by: Jim Pick X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=23757fa5cad4d74aee6e0b3a7665685778010437;p=gcc.git Reported by: Jim Pick 2003-12-02 Dalibor Topic Reported by: Jim Pick * libraries/javalib/java/util/Hashtable.java (internalcontainsValue): New method. (contains): Delegate to internalContainsValue. Reported by: Mark Wielaard * libraries/javalib/java/util/Hashtable.java (contains): Improved comment. Reported by: Jeroen Frijters * libraries/javalib/java/util/Hashtable.java (containsValue): Delegate to contains(Object) to make sure older code overwriting it continues to work. From-SVN: r74190 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 60857083f4f..d97672fa5ff 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,19 @@ +2003-12-02 Dalibor Topic + + Reported by: Jim Pick + * libraries/javalib/java/util/Hashtable.java + (internalcontainsValue): New method. + (contains): Delegate to internalContainsValue. + + Reported by: Mark Wielaard + * libraries/javalib/java/util/Hashtable.java + (contains): Improved comment. + + Reported by: Jeroen Frijters + * libraries/javalib/java/util/Hashtable.java + (containsValue): Delegate to contains(Object) to make sure older + code overwriting it continues to work. + 2003-12-02 Fernando Nasser * gnu/java/awt/peer/gtk/GtkListPeer.java (handleEvent): New diff --git a/libjava/java/util/Hashtable.java b/libjava/java/util/Hashtable.java index b0de0a231b8..d19b2fbbc81 100644 --- a/libjava/java/util/Hashtable.java +++ b/libjava/java/util/Hashtable.java @@ -333,7 +333,11 @@ public class Hashtable extends Dictionary */ public synchronized boolean contains(Object value) { - return containsValue(value); + /* delegate to non-overridable worker method + * to avoid blowing up the stack, when called + * from overridden contains[Value]() method. + */ + return internalContainsValue(value); } /** @@ -349,6 +353,25 @@ public class Hashtable extends Dictionary * @since 1.2 */ public boolean containsValue(Object value) + { + /* delegate to older method to make sure code overwriting it + * continues to work. + */ + return contains(value); + } + + /** + * Returns true if this Hashtable contains a value o, such that + * o.equals(value). This is an internal worker method + * called by contains() and containsValue(). + * + * @param value the value to search for in this Hashtable + * @return true if at least one key maps to the value + * @see #contains(Object) + * @see #containsKey(Object) + * @throws NullPointerException if value is null + */ + private boolean internalContainsValue(Object value) { for (int i = buckets.length - 1; i >= 0; i--) {