diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-08-05 10:37:53 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-08-05 13:20:48 -0700 |
| commit | 991648d099be6f004668280873f9a2c85a949eaf (patch) | |
| tree | 447bbf48f9ebbe0a430aee4b7adae404523a7c47 | |
| parent | d89ff7eef969aee6b493bc846b64d68358fafbcd (diff) | |
| download | rust-991648d099be6f004668280873f9a2c85a949eaf.tar.gz rust-991648d099be6f004668280873f9a2c85a949eaf.zip | |
Use TreeMap's ord implementation for Json
Closes #4430
| -rw-r--r-- | src/libextra/json.rs | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/src/libextra/json.rs b/src/libextra/json.rs index cd35cbdf309..ec9cb902d3d 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 } } |
