From 991648d099be6f004668280873f9a2c85a949eaf Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 5 Aug 2013 10:37:53 -0700 Subject: [PATCH] Use TreeMap's ord implementation for Json Closes #4430 --- src/libextra/json.rs | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/src/libextra/json.rs b/src/libextra/json.rs index cd35cbdf30980..ec9cb902d3d29 100644 --- a/src/libextra/json.rs +++ b/src/libextra/json.rs @@ -26,7 +26,6 @@ use std::to_str; use serialize::Encodable; use serialize; -use sort::Sort; use treemap::TreeMap; /// Represents a json value @@ -1152,23 +1151,7 @@ impl Ord for Json { Object(ref d0) => { match *other { Number(_) | String(_) | Boolean(_) | List(_) => false, - Object(ref d1) => { - let mut d0_flat = ~[]; - let mut d1_flat = ~[]; - - // FIXME #4430: this is horribly inefficient... - for (k, v) in d0.iter() { - d0_flat.push((@(*k).clone(), @(*v).clone())); - } - d0_flat.qsort(); - - for (k, v) in d1.iter() { - d1_flat.push((@(*k).clone(), @(*v).clone())); - } - d1_flat.qsort(); - - d0_flat < d1_flat - } + Object(ref d1) => d0 < d1, Null => true } }