Reported by: Jim Pick <jim@kaffe.org>
authorDalibor Topic <robilad@kaffe.org>
Tue, 2 Dec 2003 17:05:40 +0000 (17:05 +0000)
committerMichael Koch <mkoch@gcc.gnu.org>
Tue, 2 Dec 2003 17:05:40 +0000 (17:05 +0000)
2003-12-02  Dalibor Topic <robilad@kaffe.org>

Reported by: Jim Pick <jim@kaffe.org>
* libraries/javalib/java/util/Hashtable.java
(internalcontainsValue): New method.
(contains): Delegate to internalContainsValue.

Reported by: Mark Wielaard  <mark@klomp.org>
* libraries/javalib/java/util/Hashtable.java
(contains): Improved comment.

Reported by: Jeroen Frijters  <jeroen@frijters.net>
* libraries/javalib/java/util/Hashtable.java
(containsValue): Delegate to contains(Object) to make sure older
code overwriting it continues to work.

From-SVN: r74190

libjava/ChangeLog
libjava/java/util/Hashtable.java

index 60857083f4fa91ac1fbd7d6ee0e28088d60a2992..d97672fa5ffb308c713406a2de1155e2c1849e70 100644 (file)
@@ -1,3 +1,19 @@
+2003-12-02  Dalibor Topic <robilad@kaffe.org>
+
+       Reported by: Jim Pick <jim@kaffe.org>
+       * libraries/javalib/java/util/Hashtable.java
+       (internalcontainsValue): New method.
+       (contains): Delegate to internalContainsValue.
+       
+       Reported by: Mark Wielaard  <mark@klomp.org>
+       * libraries/javalib/java/util/Hashtable.java
+       (contains): Improved comment.
+       
+       Reported by: Jeroen Frijters  <jeroen@frijters.net>
+       * 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  <fnasser@redhat.com>
 
        * gnu/java/awt/peer/gtk/GtkListPeer.java (handleEvent): New
index b0de0a231b8cb03c87999f495d208bfd6a5ca548..d19b2fbbc8132fda0c7cd8ba55c3ff87fcc8ba48 100644 (file)
@@ -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 <code>o</code>, such that
+   * <code>o.equals(value)</code>. This is an internal worker method
+   * called by <code>contains()</code> and <code>containsValue()</code>.
+   *
+   * @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 <code>value</code> is null
+   */
+  private boolean internalContainsValue(Object value)
   {
     for (int i = buckets.length - 1; i >= 0; i--)
       {