OSDN Git Service

2003-12-02 Dalibor Topic <robilad@kaffe.org>
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Dec 2003 17:05:40 +0000 (17:05 +0000)
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Dec 2003 17:05:40 +0000 (17:05 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74190 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 6085708..d97672f 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 b0de0a2..d19b2fb 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);
   }
 
   /**
@@ -350,6 +354,25 @@ public class Hashtable extends Dictionary
    */
   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--)
       {
         HashEntry e = buckets[i];