File tree Expand file tree Collapse file tree 5 files changed +22
-23
lines changed Expand file tree Collapse file tree 5 files changed +22
-23
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 1386420cad0ed926de268dff0648a815c317c032
2
+ refs/heads/master: 4bfa269fe7ce48c7cd54404b4f74c48e0e7895ea
Original file line number Diff line number Diff line change @@ -355,7 +355,7 @@ fn build_session(@session::options sopts) -> session::session {
355
355
auto target_cfg = build_target_config( ) ;
356
356
auto cstore = cstore:: mk_cstore( ) ;
357
357
ret session:: session( target_cfg, sopts, cstore,
358
- [ ] , [ ] , codemap:: new_codemap( ) , 0 u) ;
358
+ [ ] , codemap:: new_codemap( ) , 0 u) ;
359
359
}
360
360
361
361
fn parse_pretty( session:: session sess, & str name) -> pp_mode {
@@ -517,7 +517,8 @@ fn main(vec[str] args) {
517
517
} ;
518
518
}
519
519
520
- for ( str cratepath in cstore:: get_used_crate_files( sess. get_cstore( ) ) ) {
520
+ auto cstore = sess. get_cstore ( ) ;
521
+ for ( str cratepath in cstore:: get_used_crate_files( cstore) ) {
521
522
auto dir = fs:: dirname( cratepath) ;
522
523
if ( dir != "" ) {
523
524
gcc_args += [ "-L" + dir] ;
@@ -527,7 +528,7 @@ fn main(vec[str] args) {
527
528
}
528
529
529
530
gcc_args += sess. get_used_link_args( ) ;
530
- auto used_libs = sess . get_used_libraries( ) ;
531
+ auto used_libs = cstore :: get_used_libraries( cstore ) ;
531
532
for ( str l in used_libs) {
532
533
gcc_args += [ "-l" + l] ;
533
534
}
Original file line number Diff line number Diff line change @@ -46,7 +46,6 @@ type crate_metadata = rec(str name, vec[u8] data);
46
46
obj session( @config targ_cfg,
47
47
@options opts,
48
48
metadata:: cstore:: cstore cstore,
49
- mutable vec[ str] used_libraries,
50
49
mutable vec[ str] used_link_args,
51
50
codemap:: codemap cm,
52
51
mutable uint err_count) {
@@ -105,23 +104,6 @@ obj session(@config targ_cfg,
105
104
fn get_used_link_args ( ) -> vec[ str ] {
106
105
ret used_link_args;
107
106
}
108
- fn add_used_library ( & str lib) -> bool {
109
- if ( lib == "" ) {
110
- ret false ;
111
- }
112
- // A program has a small number of libraries, so a vector is probably
113
- // a good data structure in here.
114
- for ( str l in used_libraries) {
115
- if ( l == lib) {
116
- ret false ;
117
- }
118
- }
119
- used_libraries += [ lib] ;
120
- ret true;
121
- }
122
- fn get_used_libraries ( ) -> vec[ str ] {
123
- ret used_libraries;
124
- }
125
107
fn get_codemap ( ) -> codemap:: codemap { ret cm; }
126
108
fn lookup_pos ( uint pos) -> codemap:: loc {
127
109
ret codemap:: lookup_pos ( cm, pos) ;
Original file line number Diff line number Diff line change @@ -180,7 +180,8 @@ fn visit_item(env e, &@ast::item i) {
180
180
m. abi != ast:: native_abi_cdecl) {
181
181
ret;
182
182
}
183
- if ( !e. sess. add_used_library( m. native_name) ) {
183
+ auto cstore = e. sess. get_cstore( ) ;
184
+ if ( !cstore:: add_used_library( cstore, m. native_name) ) {
184
185
ret;
185
186
}
186
187
for ( ast:: attribute a in
Original file line number Diff line number Diff line change @@ -38,6 +38,21 @@ fn get_used_crate_files(&cstore cstore) -> vec[str] {
38
38
ret cstore. used_crate_files ;
39
39
}
40
40
41
+ fn add_used_library ( & cstore cstore, & str lib) -> bool {
42
+ if ( lib == "" ) { ret false ; }
43
+
44
+ if ( vec:: member ( lib, cstore. used_libraries ) ) {
45
+ ret false ;
46
+ }
47
+
48
+ cstore. used_libraries += [ lib] ;
49
+ ret true;
50
+ }
51
+
52
+ fn get_used_libraries ( & cstore cstore) -> vec[ str ] {
53
+ ret cstore. used_libraries ;
54
+ }
55
+
41
56
// Local Variables:
42
57
// mode: rust
43
58
// fill-column: 78;
You can’t perform that action at this time.
0 commit comments