diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-12-18 22:55:21 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-12-18 22:55:21 +0000 |
commit | 6e5647c5d811f37e7a03ab7975908436d7995cde (patch) | |
tree | 22b5e6365fe000b6a338d7ff277920c19f4a1d83 | |
parent | 98b43b66f066dcc4fcb726c9120fe9ef82569a0c (diff) |
make sure find returns entry with original key
-rw-r--r-- | clojure.iml | 30 | ||||
-rw-r--r-- | src/jvm/clojure/lang/PersistentArrayMap.java | 2 | ||||
-rw-r--r-- | src/jvm/clojure/lang/PersistentStructMap.java | 2 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 5 |
4 files changed, 5 insertions, 34 deletions
diff --git a/clojure.iml b/clojure.iml index a7b0514d..f00d228f 100644 --- a/clojure.iml +++ b/clojure.iml @@ -11,35 +11,6 @@ <setting name="buildJar" value="true" /> <setting name="mainClass" value="clojure.lang.Compiler" /> </component> - <component name="FacetManager"> - <facet type="web" name="Web" implicit="true"> - <configuration> - <descriptors> - <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/servlet/WEB-INF/web.xml" optional="false" version="2.5" /> - </descriptors> - <webroots> - <root url="file://$MODULE_DIR$/servlet" relative="/" /> - </webroots> - <building> - <setting name="EXPLODED_URL" value="file://" /> - <setting name="EXPLODED_ENABLED" value="false" /> - <setting name="JAR_URL" value="file://" /> - <setting name="JAR_ENABLED" value="false" /> - <setting name="BUILD_MODULE_ON_FRAME_DEACTIVATION" value="false" /> - <setting name="BUILD_EXTERNAL_DEPENDENCIES" value="false" /> - <setting name="EXCLUDE_EXPLODED_DIRECTORY" value="true" /> - <setting name="RUN_JASPER_VALIDATION" value="true" /> - <setting name="BUILD_ONLY_WEB_RESOURCES" value="false" /> - </building> - <packaging> - <containerElement type="module" name="clojure"> - <attribute name="method" value="1" /> - <attribute name="URI" value="/WEB-INF/classes" /> - </containerElement> - </packaging> - </configuration> - </facet> - </component> <component name="NewModuleRootManager" inherit-compiler-output="false"> <output url="file://$MODULE_DIR$/classes" /> <exclude-output /> @@ -59,7 +30,6 @@ <SOURCES /> </library> </orderEntry> - <orderEntryProperties /> </component> <component name="VcsManagerConfiguration"> <option name="ACTIVE_VCS_NAME" value="svn" /> diff --git a/src/jvm/clojure/lang/PersistentArrayMap.java b/src/jvm/clojure/lang/PersistentArrayMap.java index f329a45c..d8fbd354 100644 --- a/src/jvm/clojure/lang/PersistentArrayMap.java +++ b/src/jvm/clojure/lang/PersistentArrayMap.java @@ -83,7 +83,7 @@ public boolean containsKey(Object key){ public IMapEntry entryAt(Object key){
int i = indexOf(key);
if(i >= 0)
- return new MapEntry(key,array[i+1]);
+ return new MapEntry(array[i],array[i+1]);
return null;
}
diff --git a/src/jvm/clojure/lang/PersistentStructMap.java b/src/jvm/clojure/lang/PersistentStructMap.java index 4b975339..01e86346 100644 --- a/src/jvm/clojure/lang/PersistentStructMap.java +++ b/src/jvm/clojure/lang/PersistentStructMap.java @@ -123,7 +123,7 @@ public IMapEntry entryAt(Object key){ Map.Entry e = def.keyslots.entryAt(key); if(e != null) { - return new MapEntry(key, vals[(Integer) e.getValue()]); + return new MapEntry(e.getKey(), vals[(Integer) e.getValue()]); } return ext.entryAt(key); } diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 502f00d8..4cb775ee 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -663,14 +663,15 @@ static public Object contains(Object coll, Object key){ static public Object find(Object coll, Object key){ if(coll == null) return null; - else if(coll instanceof Map) + else if(coll instanceof Associative) + return ((Associative) coll).entryAt(key); + else { Map m = (Map) coll; if(m.containsKey(key)) return new MapEntry(key, m.get(key)); return null; } - return ((Associative) coll).entryAt(key); } //takes a seq of key,val,key,val |