Skip to content

Commit 9ebb60d

Browse files
committed
Extract various dependencies from metadata::decoder to metadata::csearch
1 parent 7ae711f commit 9ebb60d

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

src/comp/metadata/csearch.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,34 @@ import middle::ty;
44
import std::io;
55

66
fn get_symbol(session::session sess, ast::def_id def) -> str {
7-
decoder::get_symbol(sess, def)
7+
auto cnum = def._0;
8+
auto node_id = def._1;
9+
auto cstore = sess.get_cstore();
10+
auto cdata = cstore::get_crate_data(cstore, cnum).data;
11+
ret decoder::get_symbol(cdata, node_id);
812
}
913

10-
fn get_tag_variants(ty::ctxt ctx, ast::def_id def) -> ty::variant_info[] {
11-
decoder::get_tag_variants(ctx, def)
14+
fn get_tag_variants(ty::ctxt tcx, ast::def_id def) -> ty::variant_info[] {
15+
decoder::get_tag_variants(tcx, def)
1216
}
1317

1418
fn get_type(ty::ctxt tcx, ast::def_id def) -> ty::ty_param_count_and_ty {
1519
decoder::get_type(tcx, def)
1620
}
1721

1822
fn get_type_param_count(ty::ctxt tcx, &ast::def_id def) -> uint {
19-
decoder::get_type_param_count(tcx, def)
23+
auto cnum = def._0;
24+
auto node_id = def._1;
25+
auto cstore = tcx.sess.get_cstore();
26+
auto cdata = cstore::get_crate_data(cstore, cnum).data;
27+
ret decoder::get_type_param_count(cdata, node_id);
2028
}
2129

2230
fn lookup_defs(session::session sess, ast::crate_num cnum,
2331
vec[ast::ident] path) -> vec[ast::def] {
24-
decoder::lookup_defs(sess, cnum, path)
32+
auto cstore = sess.get_cstore();
33+
auto cdata = cstore::get_crate_data(cstore, cnum).data;
34+
ret decoder::lookup_defs(cdata, cnum, path);
2535
}
2636

2737
fn get_crate_attributes(&vec[u8] data) -> ast::attribute[] {

src/comp/metadata/decoder.rs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,8 @@ fn resolve_path(vec[ast::ident] path, vec[u8] data) -> vec[ast::def_id] {
138138
}
139139

140140
// Crate metadata queries
141-
fn lookup_defs(session::session sess, ast::crate_num cnum,
141+
fn lookup_defs(&vec[u8] data, ast::crate_num cnum,
142142
vec[ast::ident] path) -> vec[ast::def] {
143-
auto data = cstore::get_crate_data(sess.get_cstore(), cnum).data;
144143
ret vec::map(bind lookup_def(cnum, data, _), resolve_path(path, data));
145144
}
146145

@@ -187,17 +186,12 @@ fn get_type(ty::ctxt tcx, ast::def_id def) -> ty::ty_param_count_and_ty {
187186
ret tup(tp_count, t);
188187
}
189188

190-
fn get_type_param_count(ty::ctxt tcx, &ast::def_id def) -> uint {
191-
auto data = cstore::get_crate_data(tcx.sess.get_cstore(),
192-
def._0).data;
193-
ret item_ty_param_count(lookup_item(def._1, data));
189+
fn get_type_param_count(&vec[u8] data, ast::node_id id) -> uint {
190+
ret item_ty_param_count(lookup_item(id, data));
194191
}
195192

196-
fn get_symbol(session::session sess, ast::def_id def) -> str {
197-
auto external_crate_id = def._0;
198-
auto data = cstore::get_crate_data(sess.get_cstore(),
199-
external_crate_id).data;
200-
ret item_symbol(lookup_item(def._1, data));
193+
fn get_symbol(&vec[u8] data, ast::node_id id) -> str {
194+
ret item_symbol(lookup_item(id, data));
201195
}
202196

203197
fn get_tag_variants(ty::ctxt tcx, ast::def_id def) -> ty::variant_info[] {

0 commit comments

Comments
 (0)