about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2013-03-29 09:10:31 -0700
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2013-03-29 09:10:31 -0700
commitbdef3f193052de51dbdc948d1c141a6615dcfd28 (patch)
treedf761d052900a7602c90a2dec0a9fe0df4676242 /src/libstd
parent31563f53d9237c21423533c16a15c37b10a6f418 (diff)
downloadrust-bdef3f193052de51dbdc948d1c141a6615dcfd28.tar.gz
rust-bdef3f193052de51dbdc948d1c141a6615dcfd28.zip
std: fix json deserializing vectors and a test
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/json.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libstd/json.rs b/src/libstd/json.rs
index f069547bc8c..d26c1606a5e 100644
--- a/src/libstd/json.rs
+++ b/src/libstd/json.rs
@@ -855,9 +855,7 @@ impl serialize::Decoder for Decoder {
             }
             _ => fail!(~"not a list"),
         };
-        let res = f(len);
-        self.stack.pop();
-        res
+        f(len)
     }
 
     fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
@@ -1675,10 +1673,10 @@ mod tests {
     fn test_read_map() {
         let s = ~"{\"a\": \"Dog\", \"b\": [\"Frog\", \"Henry\", 349]}";
         let decoder = Decoder(from_str(s).unwrap());
-        let map: LinearMap<~str, Animal> = Decodable::decode(&decoder);
+        let mut map: LinearMap<~str, Animal> = Decodable::decode(&decoder);
 
-        assert_eq!(map.find(&~"a"), Some(Dog));
-        assert_eq!(map.find(&~"b"), Some(Frog(~"Henry", 349)));
+        assert_eq!(map.pop(&~"a"), Some(Dog));
+        assert_eq!(map.pop(&~"b"), Some(Frog(~"Henry", 349)));
     }
 
     #[test]