Skip to content

Commit a12a3db

Browse files
committed
librustc: Make &fn by-copy by default and remove the mode from frame_address.
1 parent 17723d1 commit a12a3db

File tree

3 files changed

+4
-9
lines changed

3 files changed

+4
-9
lines changed

src/libcore/stackwalk.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,10 @@ pub mod rustrt {
9393
pub mod rusti {
9494
#[abi = "rust-intrinsic"]
9595
pub extern "rust-intrinsic" {
96+
#[cfg(stage0)]
9697
pub fn frame_address(f: &once fn(x: *u8));
98+
#[cfg(not(stage0))]
99+
pub fn frame_address(+f: &once fn(x: *u8));
97100
}
98101
}
99102

src/librustc/middle/ty.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,14 +1259,6 @@ pub fn mach_sty(cfg: @session::config, t: t) -> sty {
12591259
}
12601260

12611261
pub fn default_arg_mode_for_ty(tcx: ctxt, ty: ty::t) -> ast::rmode {
1262-
// FIXME(#2202) --- We retain by-ref for &fn things to workaround a
1263-
// memory leak that otherwise results when @fn is upcast to &fn.
1264-
match ty::get(ty).sty {
1265-
ty::ty_closure(ClosureTy {sigil: ast::BorrowedSigil, _}) => {
1266-
return ast::by_ref;
1267-
}
1268-
_ => {}
1269-
}
12701262
return if tcx.legacy_modes {
12711263
if type_is_borrowed(ty) {
12721264
// the old mode default was ++ for things like &ptr, but to be

src/librustc/middle/typeck/check/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3496,7 +3496,7 @@ pub fn check_intrinsic_type(ccx: @mut CrateCtxt, it: @ast::foreign_item) {
34963496
output: ty::mk_nil()
34973497
}
34983498
});
3499-
(0u, ~[arg(ast::by_ref, fty)], ty::mk_nil())
3499+
(0u, ~[arg(ast::by_copy, fty)], ty::mk_nil())
35003500
}
35013501
~"morestack_addr" => {
35023502
(0u, ~[], ty::mk_nil_ptr(ccx.tcx))

0 commit comments

Comments
 (0)