about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
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]