summaryrefslogtreecommitdiff
path: root/src/cli/runtime/PersistentHybridMap.cs
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2006-07-04 18:02:35 +0000
committerRich Hickey <richhickey@gmail.com>2006-07-04 18:02:35 +0000
commit45928ffe7f2b9e59633fb7931f2a3c75c9d6589f (patch)
treecdade057178a2795ee134ea946cefff882c7c035 /src/cli/runtime/PersistentHybridMap.cs
parent86a8196bbba908bf6cf3f5d9ab3d3ebb7f94a646 (diff)
added val to add(), throws exception if key present
Diffstat (limited to 'src/cli/runtime/PersistentHybridMap.cs')
-rw-r--r--src/cli/runtime/PersistentHybridMap.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cli/runtime/PersistentHybridMap.cs b/src/cli/runtime/PersistentHybridMap.cs
index b8214d12..211ca7a3 100644
--- a/src/cli/runtime/PersistentHybridMap.cs
+++ b/src/cli/runtime/PersistentHybridMap.cs
@@ -48,9 +48,14 @@ public IMapEntry find(Object key) {
return impl.find(key);
}
-public IPersistentMap add(Object key) {
- return put(key, null);
-}
+public IPersistentMap add(Object key,Object val) {
+ IPersistentMap newImpl = impl.add(key,val);
+ if(newImpl.capacity() == CAPACITY_THRESHOLD)
+ {
+ newImpl = createHashtableMap(((PersistentArrayMap)newImpl).array);
+ }
+ return create(newImpl);
+ }
public IPersistentMap put(Object key, Object val) {
IPersistentMap newImpl = impl.put(key,val);