diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-03-07 16:48:57 -0800 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-03-07 16:51:31 -0800 |
| commit | f0250a23d3fa2f8b4a4a4113ca89e41945a4cfed (patch) | |
| tree | dc4426e7ef764f596c25feb3947980ea9ee2d042 /src/rustc/metadata | |
| parent | a9bd76b3c11ee0ad706abc3779a337fee3550424 (diff) | |
| download | rust-f0250a23d3fa2f8b4a4a4113ca89e41945a4cfed.tar.gz rust-f0250a23d3fa2f8b4a4a4113ca89e41945a4cfed.zip | |
stdlib: Stop incurring vtable dispatch costs when hashmaps are used
This required changing almost all users of hashmaps to import the hashmap interface first. The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
Diffstat (limited to 'src/rustc/metadata')
| -rw-r--r-- | src/rustc/metadata/astencode.rs | 6 | ||||
| -rw-r--r-- | src/rustc/metadata/csearch.rs | 1 | ||||
| -rw-r--r-- | src/rustc/metadata/cstore.rs | 1 | ||||
| -rw-r--r-- | src/rustc/metadata/decoder.rs | 1 | ||||
| -rw-r--r-- | src/rustc/metadata/encoder.rs | 1 | ||||
| -rw-r--r-- | src/rustc/metadata/reachable.rs | 3 | ||||
| -rw-r--r-- | src/rustc/metadata/tydecode.rs | 1 |
7 files changed, 10 insertions, 4 deletions
diff --git a/src/rustc/metadata/astencode.rs b/src/rustc/metadata/astencode.rs index 87e2138a247..d3d8593b654 100644 --- a/src/rustc/metadata/astencode.rs +++ b/src/rustc/metadata/astencode.rs @@ -4,15 +4,15 @@ import syntax::visit; import syntax::ast_util; import syntax::ast_util::inlined_item_methods; import syntax::codemap::span; -import std::map::map; -import std::smallintmap::map; import std::ebml; import std::ebml::writer; +import std::map::hashmap; import std::serialization; import std::serialization::serializer; import std::serialization::deserializer; import std::serialization::serializer_helpers; import std::serialization::deserializer_helpers; +import std::smallintmap::map; import middle::trans::common::maps; import middle::{ty, typeck, last_use, ast_map}; import middle::typeck::method_origin; @@ -922,4 +922,4 @@ fn test_more() { ret z; } }); -} \ No newline at end of file +} diff --git a/src/rustc/metadata/csearch.rs b/src/rustc/metadata/csearch.rs index dc41753d782..0da50704635 100644 --- a/src/rustc/metadata/csearch.rs +++ b/src/rustc/metadata/csearch.rs @@ -6,6 +6,7 @@ import middle::{ty, ast_map}; import option::{some, none}; import driver::session; import middle::trans::common::maps; +import std::map::hashmap; export get_symbol; export get_type_param_count; diff --git a/src/rustc/metadata/cstore.rs b/src/rustc/metadata/cstore.rs index e9dd1a010c5..24670e1394e 100644 --- a/src/rustc/metadata/cstore.rs +++ b/src/rustc/metadata/cstore.rs @@ -2,6 +2,7 @@ // crates and libraries import std::map; +import std::map::hashmap; import syntax::ast; import util::common::*; diff --git a/src/rustc/metadata/decoder.rs b/src/rustc/metadata/decoder.rs index 196789ee58c..c43ed20b2fc 100644 --- a/src/rustc/metadata/decoder.rs +++ b/src/rustc/metadata/decoder.rs @@ -1,6 +1,7 @@ // Decoding metadata from a single crate's metadata import std::{ebml, map, io}; +import std::map::hashmap; import io::writer_util; import syntax::{ast, ast_util}; import driver::session::session; diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs index ab6a8dea04c..c2c0cbc9150 100644 --- a/src/rustc/metadata/encoder.rs +++ b/src/rustc/metadata/encoder.rs @@ -1,6 +1,7 @@ // Metadata encoding import std::{io, ebml, map, list}; +import std::map::hashmap; import io::writer_util; import ebml::writer; import syntax::ast::*; diff --git a/src/rustc/metadata/reachable.rs b/src/rustc/metadata/reachable.rs index e85d4098fde..dad1f9b7039 100644 --- a/src/rustc/metadata/reachable.rs +++ b/src/rustc/metadata/reachable.rs @@ -10,10 +10,11 @@ import syntax::ast::*; import syntax::visit; import syntax::ast_util::def_id_of_def; import front::attr; +import std::map::hashmap; export map, find_reachable; -type map = std::map::map<node_id, ()>; +type map = std::map::hashmap<node_id, ()>; type ctx = {ccx: middle::trans::common::crate_ctxt, rmap: map}; diff --git a/src/rustc/metadata/tydecode.rs b/src/rustc/metadata/tydecode.rs index 5d97777c0fb..284c38a6a3e 100644 --- a/src/rustc/metadata/tydecode.rs +++ b/src/rustc/metadata/tydecode.rs @@ -5,6 +5,7 @@ import syntax::ast::*; import syntax::ast_util; import syntax::ast_util::respan; import middle::ty; +import std::map::hashmap; export parse_ty_data, parse_def_id; export parse_bounds_data; |
