Skip to content

Commit

Permalink
Port of @JeffBezanson's OrderedDict
Browse files Browse the repository at this point in the history
* JuliaLang/julia#10116
* This is largely copy and paste + rename, fixups
* Offers good speed improvements in OrderedDict iteration,
  small improvements elsewhere
  • Loading branch information
kmsquire committed Jan 17, 2016
1 parent ff731a5 commit da2f0a7
Show file tree
Hide file tree
Showing 6 changed files with 484 additions and 110 deletions.
1 change: 1 addition & 0 deletions src/DataStructures.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ module DataStructures
include("disjoint_set.jl")
include("heaps.jl")

include("dictsupport.jl")
include("hashdict.jl")
include("ordereddict.jl")
include("orderedset.jl")
Expand Down
6 changes: 6 additions & 0 deletions src/dictsupport.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# support function

# This is defined in Base, but probably not meant for external consumption,
# so it's redefined here.
_tablesz(x::Integer) = x < 16 ? 16 : one(x)<<((sizeof(x)<<3)-leading_zeros(x-1))

4 changes: 2 additions & 2 deletions src/hashdict.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import Base: KeyIterator, ValueIterator, haskey, get, getkey, delete!,
pop!, empty!, filter!, setindex!, getindex, similar,
sizehint!, length, filter, isempty, start, next, done,
keys, values, _tablesz, skip_deleted, serialize, deserialize
sizehint, length, filter, isempty, start, next, done,
keys, values, skip_deleted, serialize, deserialize

import Base.Serializer: serialize_type
const SerState = Base.Serializer.SerializationState
Expand Down
Loading

0 comments on commit da2f0a7

Please sign in to comment.