TreeMap.java (nil): Made non-final.
authorBryce McKinlay <bryce@albatross.co.nz>
Fri, 16 Feb 2001 02:25:24 +0000 (02:25 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Fri, 16 Feb 2001 02:25:24 +0000 (02:25 +0000)
* java/util/TreeMap.java (nil): Made non-final.
(clone): Create new nil node for copy.

From-SVN: r39736

libjava/ChangeLog
libjava/java/util/TreeMap.java

index 63b9840387d25b9a2b7fd9230d77b6a9a466c8cb..f3b77a166c2b824d3cf1ef60c612890a4883d018 100644 (file)
@@ -3,6 +3,9 @@
        * java/util/TreeSet.java (clone): Made subclass safe, use 
        super.clone(), not new.
        * java/util/TreeMap.java (clone): Likewise.
+       
+       * java/util/TreeMap.java (nil): Made non-final.
+       (clone): Create new nil node for copy.
 
 2001-02-14  Andrew Haley  <aph@redhat.com>
 
index 67ecebdaff141e75069159d45a1c28e1e5469dd8..26e3fd6dfbaf18e0192b45c1c5dabed737300f26 100644 (file)
@@ -56,7 +56,7 @@ import java.io.IOException;
  *
  * @author           Jon Zeppieri
  * @author          Bryce McKinlay
- * @modified         $Id: TreeMap.java,v 1.2 2001/02/14 05:32:31 bryce Exp $
+ * @modified         $Id: TreeMap.java,v 1.3 2001/02/16 01:49:40 bryce Exp $
  */
 public class TreeMap extends AbstractMap
   implements SortedMap, Cloneable, Serializable
@@ -67,7 +67,7 @@ public class TreeMap extends AbstractMap
   /** Sentinal node, used to avoid null checks for corner cases and make the
       delete rebalance code simpler. Note that this must not be static, due 
       to thread-safety concerns. */
-  transient final Node nil = new Node(null, null);
+  transient Node nil = new Node(null, null);
 
   /** The root node of this TreeMap */
   transient Node root = nil;
@@ -186,6 +186,8 @@ public class TreeMap extends AbstractMap
     catch (CloneNotSupportedException x)
       {
       }
+    // Each instance must have a unique sentinal.
+    copy.nil = new Node(null, null);
     copy.fabricateTree(size);
 
     Node node = firstNode();