Skip to content

Commit 82983e5

Browse files
committed
Replace the crate cache in session with the one in cstore
1 parent b23ecd4 commit 82983e5

File tree

5 files changed

+17
-16
lines changed

5 files changed

+17
-16
lines changed

src/comp/driver/rustc.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,7 @@ fn build_session_options(str binary, getopts::match match, str binary_dir) ->
353353
fn build_session(@session::options sopts) -> session::session {
354354
auto target_cfg = build_target_config();
355355
auto cstore = metadata::cstore::mk_cstore();
356-
auto crate_cache = std::map::new_int_hash[session::crate_metadata]();
357-
ret session::session(target_cfg, sopts, cstore, crate_cache, [],
356+
ret session::session(target_cfg, sopts, cstore, [],
358357
[], [], codemap::new_codemap(), 0u);
359358
}
360359

src/comp/driver/session.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ type crate_metadata = rec(str name, vec[u8] data);
4646
obj session(@config targ_cfg,
4747
@options opts,
4848
metadata::cstore::cstore cstore,
49-
map::hashmap[int, crate_metadata] crates,
5049
mutable vec[str] used_crate_files,
5150
mutable vec[str] used_libraries,
5251
mutable vec[str] used_link_args,
@@ -101,11 +100,6 @@ obj session(@config targ_cfg,
101100
self.span_bug(sp, "unimplemented " + msg);
102101
}
103102
fn unimpl(str msg) -> ! { self.bug("unimplemented " + msg); }
104-
fn get_external_crate(int num) -> crate_metadata { ret crates.get(num); }
105-
fn set_external_crate(int num, &crate_metadata metadata) {
106-
crates.insert(num, metadata);
107-
}
108-
fn has_external_crate(int num) -> bool { ret crates.contains_key(num); }
109103
fn add_used_link_args(&str args) {
110104
used_link_args += str::split(args, ' ' as u8);
111105
}

src/comp/metadata/creader.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ fn load_library_crate(&session::session sess, span span, int cnum,
138138
&vec[str] library_search_paths) {
139139
alt (find_library_crate(sess, ident, metas, library_search_paths)) {
140140
case (some(?t)) {
141-
sess.set_external_crate(cnum, rec(name=ident, data=t._1));
141+
cstore::set_crate_data(sess.get_cstore(), cnum,
142+
rec(name=ident, data=t._1));
142143
sess.add_used_crate_file(t._0);
143144
ret;
144145
}

src/comp/metadata/decoder.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import tydecode::parse_def_id;
1515
import tydecode::parse_ty_data;
1616
import driver::session;
1717
import syntax::print::pprust;
18+
import cstore;
1819

1920
export get_symbol;
2021
export get_tag_variants;
@@ -138,7 +139,7 @@ fn resolve_path(vec[ast::ident] path, vec[u8] data) -> vec[ast::def_id] {
138139
// Crate metadata queries
139140
fn lookup_defs(session::session sess, int cnum, vec[ast::ident] path) ->
140141
vec[ast::def] {
141-
auto data = sess.get_external_crate(cnum).data;
142+
auto data = cstore::get_crate_data(sess.get_cstore(), cnum).data;
142143
ret vec::map(bind lookup_def(cnum, data, _), resolve_path(path, data));
143144
}
144145

@@ -171,7 +172,8 @@ fn lookup_def(int cnum, vec[u8] data, &ast::def_id did_) -> ast::def {
171172

172173
fn get_type(ty::ctxt tcx, ast::def_id def) -> ty::ty_param_count_and_ty {
173174
auto external_crate_id = def._0;
174-
auto data = tcx.sess.get_external_crate(external_crate_id).data;
175+
auto data = cstore::get_crate_data(tcx.sess.get_cstore(),
176+
external_crate_id).data;
175177
auto item = lookup_item(def._1, data);
176178
auto t = item_type(item, external_crate_id, tcx);
177179
auto tp_count;
@@ -184,19 +186,22 @@ fn get_type(ty::ctxt tcx, ast::def_id def) -> ty::ty_param_count_and_ty {
184186
}
185187

186188
fn get_type_param_count(ty::ctxt tcx, &ast::def_id def) -> uint {
187-
auto data = tcx.sess.get_external_crate(def._0).data;
189+
auto data = cstore::get_crate_data(tcx.sess.get_cstore(),
190+
def._0).data;
188191
ret item_ty_param_count(lookup_item(def._1, data));
189192
}
190193

191194
fn get_symbol(session::session sess, ast::def_id def) -> str {
192195
auto external_crate_id = def._0;
193-
auto data = sess.get_external_crate(external_crate_id).data;
196+
auto data = cstore::get_crate_data(sess.get_cstore(),
197+
external_crate_id).data;
194198
ret item_symbol(lookup_item(def._1, data));
195199
}
196200

197201
fn get_tag_variants(ty::ctxt tcx, ast::def_id def) -> ty::variant_info[] {
198202
auto external_crate_id = def._0;
199-
auto data = tcx.sess.get_external_crate(external_crate_id).data;
203+
auto data = cstore::get_crate_data(tcx.sess.get_cstore(),
204+
external_crate_id).data;
200205
auto items = ebml::get_doc(ebml::new_doc(data), tag_items);
201206
auto item = find_item(def._1, items);
202207
let ty::variant_info[] infos = ~[];

src/comp/middle/trans.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ import link::mangle_exported_name;
6666
import metadata::tyencode;
6767
import metadata::creader;
6868
import metadata::decoder;
69+
import metadata::cstore;
6970
import util::ppaux::ty_to_str;
7071
import util::ppaux::ty_to_short_str;
7172
import syntax::print::pprust::expr_to_str;
@@ -9262,8 +9263,9 @@ fn create_module_map(&@crate_ctxt ccx) -> ValueRef {
92629263
fn create_crate_map(&@crate_ctxt ccx) -> ValueRef {
92639264
let ValueRef[] subcrates = ~[];
92649265
auto i = 1;
9265-
while (ccx.sess.has_external_crate(i)) {
9266-
auto name = ccx.sess.get_external_crate(i).name;
9266+
auto cstore = ccx.sess.get_cstore();
9267+
while (cstore::have_crate_data(cstore, i)) {
9268+
auto name = cstore::get_crate_data(cstore, i).name;
92679269
auto cr =
92689270
llvm::LLVMAddGlobal(ccx.llmod, T_int(),
92699271
str::buf("_rust_crate_map_" + name));

0 commit comments

Comments
 (0)