From 4cc80fbce85336291900f01b985806e3821abcc6 Mon Sep 17 00:00:00 2001 From: oxinabox Date: Mon, 9 Jul 2018 19:15:21 +0800 Subject: [PATCH] =Fix #394 --- src/dict_sorting.jl | 8 +------- test/test_sorting.jl | 4 ++++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/dict_sorting.jl b/src/dict_sorting.jl index 63a90e1d5..b08dd9e75 100644 --- a/src/dict_sorting.jl +++ b/src/dict_sorting.jl @@ -11,15 +11,9 @@ function sort!(d::OrderedDict; byvalue::Bool=false, args...) else p = sortperm(d.keys; args...) end - - for (i,key) in enumerate(d.keys) - idx = ht_keyindex(d, key, false) - d.slots[idx] = p[i] - end - d.keys = d.keys[p] d.vals = d.vals[p] - + rehash!(d) return d end diff --git a/test/test_sorting.jl b/test/test_sorting.jl index 97972c4fd..2965d320b 100644 --- a/test/test_sorting.jl +++ b/test/test_sorting.jl @@ -24,4 +24,8 @@ @test sort(unordered; rev=true) == rev @test sort(unordered; byvalue=true) == rev @test sort(unordered; byvalue=true, rev=true) == forward + + @testset "Bug DataStructures.jl/#394" begin + @test sort(Dict(k=>string(k) for k in 1:3))[1] == "1" + end end