From 45928ffe7f2b9e59633fb7931f2a3c75c9d6589f Mon Sep 17 00:00:00 2001 From: Rich Hickey Date: Tue, 4 Jul 2006 18:02:35 +0000 Subject: added val to add(), throws exception if key present --- src/cli/runtime/PersistentHybridMap.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/cli/runtime/PersistentHybridMap.cs') 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); -- cgit v1.2.3-70-g09d2