diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-12-15 17:25:58 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-12-15 17:25:58 -0800 |
| commit | 1f8f6054d283f7a2d5e5277f422463bfaecbe139 (patch) | |
| tree | 04eb9201b66ee5f3721040b8a1f166c4bae2171b /src/comp | |
| parent | 26db74c81193c895f51ee67f3cfba5b2b412b1cf (diff) | |
| download | rust-1f8f6054d283f7a2d5e5277f422463bfaecbe139.tar.gz rust-1f8f6054d283f7a2d5e5277f422463bfaecbe139.zip | |
rustc: Box tag variants to avoid copies
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/metadata/decoder.rs | 2 | ||||
| -rw-r--r-- | src/comp/middle/ty.rs | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/comp/metadata/decoder.rs b/src/comp/metadata/decoder.rs index bd8c02d0cb7..d5d981bb81c 100644 --- a/src/comp/metadata/decoder.rs +++ b/src/comp/metadata/decoder.rs @@ -244,7 +244,7 @@ fn get_tag_variants(_data: @[u8], def: ast::def_id, tcx: ty::ctxt, } } - infos += [{args: arg_tys, ctor_ty: ctor_ty, id: did}]; + infos += [@{args: arg_tys, ctor_ty: ctor_ty, id: did}]; } ret infos; } diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs index 57ef16ded61..2ff7f0b1b74 100644 --- a/src/comp/middle/ty.rs +++ b/src/comp/middle/ty.rs @@ -2721,7 +2721,7 @@ fn def_has_ty_params(def: ast::def) -> bool { // Tag information -type variant_info = {args: [ty::t], ctor_ty: ty::t, id: ast::def_id}; +type variant_info = @{args: [ty::t], ctor_ty: ty::t, id: ast::def_id}; fn tag_variants(cx: ctxt, id: ast::def_id) -> @mutable [variant_info] { if ast::local_crate != id.crate { @@ -2752,9 +2752,9 @@ fn tag_variants(cx: ctxt, id: ast::def_id) -> @mutable [variant_info] { } let did = variant.node.id; *result += - [{args: arg_tys, - ctor_ty: ctor_ty, - id: ast_util::local_def(did)}]; + [@{args: arg_tys, + ctor_ty: ctor_ty, + id: ast_util::local_def(did)}]; } smallintmap::insert(*cx.tag_var_cache, id.node as uint, result); ret result; |
