aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/util
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/util')
-rw-r--r--libjava/java/util/AbstractMap.java8
-rw-r--r--libjava/java/util/IdentityHashMap.java17
2 files changed, 22 insertions, 3 deletions
diff --git a/libjava/java/util/AbstractMap.java b/libjava/java/util/AbstractMap.java
index 7ce7305..e28ce91 100644
--- a/libjava/java/util/AbstractMap.java
+++ b/libjava/java/util/AbstractMap.java
@@ -47,6 +47,14 @@ public abstract class AbstractMap implements Map
entrySet().clear();
}
+ /**
+ * Create a shallow copy of this Map, no keys or values are copied.
+ */
+ protected Object clone () throws CloneNotSupportedException
+ {
+ return super.clone ();
+ }
+
public boolean containsKey(Object key)
{
Object k;
diff --git a/libjava/java/util/IdentityHashMap.java b/libjava/java/util/IdentityHashMap.java
index 5a1d76b..c23f8ac 100644
--- a/libjava/java/util/IdentityHashMap.java
+++ b/libjava/java/util/IdentityHashMap.java
@@ -83,11 +83,22 @@ public class IdentityHashMap extends AbstractMap
size = 0;
}
+ /**
+ * Creates a shallow copy where keys and values are not cloned.
+ */
public Object clone ()
{
- IdentityHashMap copy = (IdentityHashMap) super.clone ();
- copy.table = (Object[]) table.clone ();
- return copy;
+ try
+ {
+ IdentityHashMap copy = (IdentityHashMap) super.clone ();
+ copy.table = (Object[]) table.clone ();
+ return copy;
+ }
+ catch (CloneNotSupportedException e)
+ {
+ // Can't happen.
+ return null;
+ }
}
public boolean containsKey (Object key)