Skip to content

Commit

Permalink
Use OrderedMap for protobuf maps
Browse files Browse the repository at this point in the history
  • Loading branch information
amalloy committed Apr 23, 2012
1 parent d374651 commit ebb18b0
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion project.clj
@@ -1,7 +1,7 @@
(defproject protobuf "0.6.0-beta14" (defproject protobuf "0.6.0-beta14"
:description "Clojure-protobuf provides a clojure interface to Google's protocol buffers." :description "Clojure-protobuf provides a clojure interface to Google's protocol buffers."
:dependencies [[clojure "1.2.0"] :dependencies [[clojure "1.2.0"]
[ordered-set "0.2.3"] [ordered-set "0.3.0"]
[useful "0.8.0-alpha1"] [useful "0.8.0-alpha1"]
[fs "1.0.0"] [fs "1.0.0"]
[conch "0.2.0"] [conch "0.2.0"]
Expand Down
6 changes: 3 additions & 3 deletions src/protobuf/core/PersistentProtocolBufferMap.java
Expand Up @@ -21,6 +21,7 @@
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;


import ordered_map.core.OrderedMap;
import ordered_set.core.OrderedSet; import ordered_set.core.OrderedSet;
import clojure.lang.APersistentMap; import clojure.lang.APersistentMap;
import clojure.lang.ASeq; import clojure.lang.ASeq;
Expand All @@ -38,7 +39,6 @@
import clojure.lang.Numbers; import clojure.lang.Numbers;
import clojure.lang.Obj; import clojure.lang.Obj;
import clojure.lang.PersistentArrayMap; import clojure.lang.PersistentArrayMap;
import clojure.lang.PersistentHashMap;
import clojure.lang.PersistentVector; import clojure.lang.PersistentVector;
import clojure.lang.RT; import clojure.lang.RT;
import clojure.lang.SeqIterator; import clojure.lang.SeqIterator;
Expand Down Expand Up @@ -364,7 +364,7 @@ protected Object fromProtoValue(Descriptors.FieldDescriptor field, Object value,
Object map_field_by = def.mapFieldBy(field); Object map_field_by = def.mapFieldBy(field);
DescriptorProtos.FieldOptions options = field.getOptions(); DescriptorProtos.FieldOptions options = field.getOptions();
if (map_field_by != null) { if (map_field_by != null) {
ITransientMap map = PersistentHashMap.EMPTY.asTransient(); ITransientMap map = (ITransientMap)OrderedMap.EMPTY.asTransient();
while (iterator.hasNext()) { while (iterator.hasNext()) {
PersistentProtocolBufferMap v = (PersistentProtocolBufferMap)fromProtoValue(field, PersistentProtocolBufferMap v = (PersistentProtocolBufferMap)fromProtoValue(field,
iterator.next()); iterator.next());
Expand All @@ -390,7 +390,7 @@ protected Object fromProtoValue(Descriptors.FieldDescriptor field, Object value,
Descriptors.FieldDescriptor key_field = type.findFieldByName("key"); Descriptors.FieldDescriptor key_field = type.findFieldByName("key");
Descriptors.FieldDescriptor val_field = type.findFieldByName("val"); Descriptors.FieldDescriptor val_field = type.findFieldByName("val");


ITransientMap map = PersistentHashMap.EMPTY.asTransient(); ITransientMap map = (ITransientMap)OrderedMap.EMPTY.asTransient();
while (iterator.hasNext()) { while (iterator.hasNext()) {
DynamicMessage message = (DynamicMessage)iterator.next(); DynamicMessage message = (DynamicMessage)iterator.next();
Object k = fromProtoValue(key_field, message.getField(key_field)); Object k = fromProtoValue(key_field, message.getField(key_field));
Expand Down

0 comments on commit ebb18b0

Please sign in to comment.