@@ -72,8 +72,7 @@ use core::int;
72
72
use core:: io;
73
73
use core:: libc:: { c_uint, c_ulonglong} ;
74
74
use core:: uint;
75
- use std:: oldmap:: HashMap ;
76
- use std:: { oldmap, time, list} ;
75
+ use std:: { time, list} ;
77
76
use syntax:: ast:: ident;
78
77
use syntax:: ast_map:: { path, path_elt_to_str, path_mod, path_name} ;
79
78
use syntax:: ast_util:: { def_id_of_def, local_def, path_to_ident} ;
@@ -170,16 +169,22 @@ pub fn get_extern_fn(externs: ExternMap,
170
169
name : @str ,
171
170
cc : lib:: llvm:: CallConv ,
172
171
ty : TypeRef ) -> ValueRef {
173
- if externs. contains_key ( & name) { return externs. get ( & name) ; }
172
+ match externs. find ( & name) {
173
+ Some ( n) => return copy * n,
174
+ None => ( )
175
+ }
174
176
let f = decl_fn ( llmod, name, cc, ty) ;
175
177
externs. insert ( name, f) ;
176
178
return f;
177
179
}
178
180
179
181
pub fn get_extern_const ( externs : ExternMap , llmod : ModuleRef ,
180
182
name : @str , ty : TypeRef ) -> ValueRef {
183
+ match externs. find ( & name) {
184
+ Some ( n) => return copy * n,
185
+ None => ( )
186
+ }
181
187
unsafe {
182
- if externs. contains_key ( & name) { return externs. get ( & name) ; }
183
188
let c = str:: as_c_str ( name, |buf| {
184
189
llvm:: LLVMAddGlobal ( llmod, ty, buf)
185
190
} ) ;
@@ -3061,7 +3066,7 @@ pub fn trans_crate(sess: session::Session,
3061
3066
llmod: llmod,
3062
3067
td: td,
3063
3068
tn: tn,
3064
- externs: HashMap (),
3069
+ externs: @mut LinearMap::new (),
3065
3070
intrinsics: intrinsics,
3066
3071
item_vals: @mut LinearMap::new(),
3067
3072
exp_map2: emap2,
@@ -3082,8 +3087,8 @@ pub fn trans_crate(sess: session::Session,
3082
3087
const_globals: @mut LinearMap::new(),
3083
3088
const_values: @mut LinearMap::new(),
3084
3089
module_data: @mut LinearMap::new(),
3085
- lltypes: ty::new_ty_hash (),
3086
- llsizingtypes: ty::new_ty_hash (),
3090
+ lltypes: @mut LinearMap::new (),
3091
+ llsizingtypes: @mut LinearMap::new (),
3087
3092
adt_reprs: @mut LinearMap::new(),
3088
3093
names: new_namegen(sess.parse_sess.interner),
3089
3094
next_addrspace: new_addrspace_gen(),
0 commit comments