diff options
Diffstat (limited to 'libjava/java/util')
-rw-r--r-- | libjava/java/util/AbstractMap.java | 8 | ||||
-rw-r--r-- | libjava/java/util/IdentityHashMap.java | 17 |
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) |