diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-07-06 11:26:26 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-07-06 11:26:26 -0700 |
| commit | bbdba21b1f3c7dfc4c0bac3525cc35939ae8ca4c (patch) | |
| tree | d9cb0046b2a608b4b44c54eacce7951326c65df2 /src/comp/metadata/decoder.rs | |
| parent | ec890fff23d80da97086e89f29ef7f8d14dbaab8 (diff) | |
| download | rust-bbdba21b1f3c7dfc4c0bac3525cc35939ae8ca4c.tar.gz rust-bbdba21b1f3c7dfc4c0bac3525cc35939ae8ca4c.zip | |
rustc: Revert the conversion to interior vectors due to heap corruption
Diffstat (limited to 'src/comp/metadata/decoder.rs')
| -rw-r--r-- | src/comp/metadata/decoder.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/comp/metadata/decoder.rs b/src/comp/metadata/decoder.rs index a9df1a99d06..7bcb9e48bf8 100644 --- a/src/comp/metadata/decoder.rs +++ b/src/comp/metadata/decoder.rs @@ -194,27 +194,27 @@ fn get_symbol(session::session sess, ast::def_id def) -> str { ret item_symbol(lookup_item(def._1, data)); } -fn get_tag_variants(ty::ctxt tcx, ast::def_id def) -> ty::variant_info[] { +fn get_tag_variants(ty::ctxt tcx, ast::def_id def) -> vec[ty::variant_info] { auto external_crate_id = def._0; auto data = tcx.sess.get_external_crate(external_crate_id).data; auto items = ebml::get_doc(ebml::new_doc(data), tag_items); auto item = find_item(def._1, items); - let ty::variant_info[] infos = ~[]; + let vec[ty::variant_info] infos = []; auto variant_ids = tag_variant_ids(item, external_crate_id); for (ast::def_id did in variant_ids) { auto item = find_item(did._1, items); auto ctor_ty = item_type(item, external_crate_id, tcx); - let ty::t[] arg_tys = ~[]; + let vec[ty::t] arg_tys = []; alt (ty::struct(tcx, ctor_ty)) { case (ty::ty_fn(_, ?args, _, _, _)) { - for (ty::arg a in args) { arg_tys += ~[a.ty]; } + for (ty::arg a in args) { arg_tys += [a.ty]; } } case (_) { // Nullary tag variant. } } - infos += ~[rec(args=arg_tys, ctor_ty=ctor_ty, id=did)]; + infos += [rec(args=arg_tys, ctor_ty=ctor_ty, id=did)]; } ret infos; } @@ -290,8 +290,8 @@ fn get_meta_items(&ebml::doc md) -> vec[@ast::meta_item] { ret items; } -fn get_attributes(&ebml::doc md) -> ast::attribute[] { - let ast::attribute[] attrs = ~[]; +fn get_attributes(&ebml::doc md) -> vec[ast::attribute] { + let vec[ast::attribute] attrs = []; alt (ebml::maybe_get_doc(md, tag_attributes)) { case (option::some(?attrs_d)) { for each (ebml::doc attr_doc in @@ -301,9 +301,9 @@ fn get_attributes(&ebml::doc md) -> ast::attribute[] { // an attribute assert (vec::len(meta_items) == 1u); auto meta_item = meta_items.(0); - attrs += ~[rec(node=rec(style=ast::attr_outer, - value=*meta_item), - span=rec(lo=0u, hi=0u))]; + attrs += [rec(node=rec(style=ast::attr_outer, + value=*meta_item), + span=rec(lo=0u, hi=0u))]; } } case (option::none) { } @@ -327,7 +327,7 @@ fn list_crate_attributes(&ebml::doc md, io::writer out) { out.write_str("\n\n"); } -fn get_crate_attributes(&vec[u8] data) -> ast::attribute[] { +fn get_crate_attributes(&vec[u8] data) -> vec[ast::attribute] { ret get_attributes(ebml::new_doc(data)); } |
