… | |
… | |
21 | * |
21 | * |
22 | * The authors can be reached via e-mail to <support@deliantra.net> |
22 | * The authors can be reached via e-mail to <support@deliantra.net> |
23 | */ |
23 | */ |
24 | |
24 | |
25 | #include <cassert> |
25 | #include <cassert> |
|
|
26 | #include <functional> |
|
|
27 | |
|
|
28 | #include <flat_hash_map.hpp> |
26 | |
29 | |
27 | #include <global.h> |
30 | #include <global.h> |
28 | |
|
|
29 | #include <functional> |
|
|
30 | #include <unordered_map> |
|
|
31 | |
31 | |
32 | archetype *loading_arch; // ugly flag to object loader etc. to suppress/request special processing |
32 | archetype *loading_arch; // ugly flag to object loader etc. to suppress/request special processing |
33 | arch_ptr archetype::empty; |
33 | arch_ptr archetype::empty; |
34 | |
34 | |
35 | // the hashtable |
35 | // the hashtable |
36 | typedef std::unordered_map |
36 | typedef ska::flat_hash_map< |
37 | < |
|
|
38 | const char *, |
37 | const char *, |
39 | arch_ptr, |
38 | arch_ptr, |
40 | str_hash, |
39 | str_hash, |
41 | str_equal, |
40 | str_equal, |
42 | slice_allocator< std::pair<const char *const, arch_ptr> > |
41 | slice_allocator< std::pair<const char *const, arch_ptr> > |
43 | > HT; |
42 | > HT; |
44 | |
43 | |
45 | static HT ht (10000); |
44 | static HT ht (10000); |
46 | archvec archetypes; |
45 | archvec archetypes; |
47 | static unordered_vector<archetype *> allarch; |
46 | static unordered_vector<archetype *> allarch; |
48 | static int dirtycnt; |
47 | static int dirtycnt; |