summary refs log tree commit diff
path: root/src/rustc/metadata
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-03-07 16:48:57 -0800
committerPatrick Walton <pcwalton@mimiga.net>2012-03-07 16:51:31 -0800
commitf0250a23d3fa2f8b4a4a4113ca89e41945a4cfed (patch)
treedc4426e7ef764f596c25feb3947980ea9ee2d042 /src/rustc/metadata
parenta9bd76b3c11ee0ad706abc3779a337fee3550424 (diff)
downloadrust-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.rs6
-rw-r--r--src/rustc/metadata/csearch.rs1
-rw-r--r--src/rustc/metadata/cstore.rs1
-rw-r--r--src/rustc/metadata/decoder.rs1
-rw-r--r--src/rustc/metadata/encoder.rs1
-rw-r--r--src/rustc/metadata/reachable.rs3
-rw-r--r--src/rustc/metadata/tydecode.rs1
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;