1
Fork 0

core: Rename unsafe::leak to unsafe::forget. Closes #2031

This commit is contained in:
Brian Anderson 2012-03-20 15:12:30 -07:00
parent 56828d49fd
commit b181ea415e
11 changed files with 20 additions and 20 deletions

View file

@ -119,7 +119,7 @@ fn send<T: send>(ch: chan<T>, -data: T) {
let res = rustrt::rust_port_id_send(sys::get_type_desc::<T>(), p, data); let res = rustrt::rust_port_id_send(sys::get_type_desc::<T>(), p, data);
if res != 0u unsafe { if res != 0u unsafe {
// Data sent successfully // Data sent successfully
unsafe::leak(data); unsafe::forget(data);
} }
task::yield(); task::yield();
} }

View file

@ -83,7 +83,7 @@ fn unwrap<T>(-opt: option<T>) -> T unsafe {
none { fail "option none" } none { fail "option none" }
}; };
let liberated_value = unsafe::reinterpret_cast(*addr); let liberated_value = unsafe::reinterpret_cast(*addr);
unsafe::leak(opt); unsafe::forget(opt);
ret liberated_value; ret liberated_value;
} }

View file

@ -129,7 +129,7 @@ fn with_envp<T>(env: option<[(str,str)]>,
let t = #fmt("%s=%s", k, v); let t = #fmt("%s=%s", k, v);
let mut v : [u8] = ::unsafe::reinterpret_cast(t); let mut v : [u8] = ::unsafe::reinterpret_cast(t);
blk += v; blk += v;
::unsafe::leak(v); ::unsafe::forget(v);
} }
blk += [0_u8]; blk += [0_u8];
vec::as_buf(blk) {|p| cb(::unsafe::reinterpret_cast(p)) } vec::as_buf(blk) {|p| cb(::unsafe::reinterpret_cast(p)) }

View file

@ -129,7 +129,7 @@ fn from_byte(b: u8) -> str unsafe {
assert b < 128u8; assert b < 128u8;
let mut v = [b, 0u8]; let mut v = [b, 0u8];
let s: str = ::unsafe::reinterpret_cast(v); let s: str = ::unsafe::reinterpret_cast(v);
::unsafe::leak(v); ::unsafe::forget(v);
s s
} }
@ -273,7 +273,7 @@ The result vector is not null-terminated.
fn bytes(s: str) -> [u8] unsafe { fn bytes(s: str) -> [u8] unsafe {
let mut s_copy = s; let mut s_copy = s;
let mut v: [u8] = ::unsafe::reinterpret_cast(s_copy); let mut v: [u8] = ::unsafe::reinterpret_cast(s_copy);
::unsafe::leak(s_copy); ::unsafe::forget(s_copy);
vec::unsafe::set_len(v, len(s)); vec::unsafe::set_len(v, len(s));
ret v; ret v;
} }
@ -1445,7 +1445,7 @@ let i = str::as_bytes(\"Hello World\") { |bytes| vec::len(bytes) };
fn as_bytes<T>(s: str, f: fn([u8]) -> T) -> T unsafe { fn as_bytes<T>(s: str, f: fn([u8]) -> T) -> T unsafe {
let mut v: [u8] = ::unsafe::reinterpret_cast(s); let mut v: [u8] = ::unsafe::reinterpret_cast(s);
let r = f(v); let r = f(v);
::unsafe::leak(v); ::unsafe::forget(v);
r r
} }
@ -1517,7 +1517,7 @@ mod unsafe {
assert is_utf8(v); assert is_utf8(v);
let s: str = ::unsafe::reinterpret_cast(v); let s: str = ::unsafe::reinterpret_cast(v);
::unsafe::leak(v); ::unsafe::forget(v);
ret s; ret s;
} }
@ -1541,7 +1541,7 @@ mod unsafe {
unsafe fn from_bytes(v: [const u8]) -> str unsafe { unsafe fn from_bytes(v: [const u8]) -> str unsafe {
let mut vcopy: [u8] = v + [0u8]; let mut vcopy: [u8] = v + [0u8];
let scopy: str = ::unsafe::reinterpret_cast(vcopy); let scopy: str = ::unsafe::reinterpret_cast(vcopy);
::unsafe::leak(vcopy); ::unsafe::forget(vcopy);
ret scopy; ret scopy;
} }
@ -1578,7 +1578,7 @@ mod unsafe {
}; };
v += [0u8]; v += [0u8];
let s: str = ::unsafe::reinterpret_cast(v); let s: str = ::unsafe::reinterpret_cast(v);
::unsafe::leak(v); ::unsafe::forget(v);
ret s; ret s;
} }

View file

@ -504,7 +504,7 @@ fn spawn_raw(opts: task_opts, +f: fn~()) unsafe {
} }
rustrt::start_task(new_task, closure); rustrt::start_task(new_task, closure);
unsafe::leak(f); unsafe::forget(f);
fn new_task_in_new_sched(opts: sched_opts) -> *rust_task { fn new_task_in_new_sched(opts: sched_opts) -> *rust_task {
if opts.native_stack_size != none { if opts.native_stack_size != none {

View file

@ -1,6 +1,6 @@
#[doc = "Unsafe operations"]; #[doc = "Unsafe operations"];
export reinterpret_cast, leak; export reinterpret_cast, forget;
#[abi = "rust-intrinsic"] #[abi = "rust-intrinsic"]
native mod rusti { native mod rusti {
@ -24,13 +24,13 @@ unsafe fn reinterpret_cast<T, U>(src: T) -> U {
#[doc =" #[doc ="
Move a thing into the void Move a thing into the void
The leak function will take ownership of the provided value but neglect The forget function will take ownership of the provided value but neglect
to run any required cleanup or memory-management operations on it. This to run any required cleanup or memory-management operations on it. This
can be used for various acts of magick, particularly when using can be used for various acts of magick, particularly when using
reinterpret_cast on managed pointer types. reinterpret_cast on managed pointer types.
"] "]
#[inline(always)] #[inline(always)]
unsafe fn leak<T>(-thing: T) { rusti::leak(thing); } unsafe fn forget<T>(-thing: T) { rusti::leak(thing); }
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {

View file

@ -155,14 +155,14 @@ fn from_elem<T: copy>(n_elts: uint, t: T) -> [T] {
#[doc = "Produces a mutable vector from an immutable vector."] #[doc = "Produces a mutable vector from an immutable vector."]
fn to_mut<T>(+v: [T]) -> [mutable T] unsafe { fn to_mut<T>(+v: [T]) -> [mutable T] unsafe {
let r = ::unsafe::reinterpret_cast(v); let r = ::unsafe::reinterpret_cast(v);
::unsafe::leak(v); ::unsafe::forget(v);
r r
} }
#[doc = "Produces an immutable vector from a mutable vector."] #[doc = "Produces an immutable vector from a mutable vector."]
fn from_mut<T>(+v: [mutable T]) -> [T] unsafe { fn from_mut<T>(+v: [mutable T]) -> [T] unsafe {
let r = ::unsafe::reinterpret_cast(v); let r = ::unsafe::reinterpret_cast(v);
::unsafe::leak(v); ::unsafe::forget(v);
r r
} }

View file

@ -813,12 +813,12 @@ mod node {
offset += 1u; offset += 1u;
i += 1u; i += 1u;
} }
unsafe::leak(local_buf); unsafe::forget(local_buf);
} }
} }
} }
let str : str = unsafe::reinterpret_cast(buf); let str : str = unsafe::reinterpret_cast(buf);
unsafe::leak(buf);//TODO: Check if this is correct unsafe::forget(buf);//TODO: Check if this is correct
ret str; ret str;
} }

View file

@ -123,7 +123,7 @@ enum debug_metadata {
fn cast_safely<T: copy, U>(val: T) -> U unsafe { fn cast_safely<T: copy, U>(val: T) -> U unsafe {
let val2 = val; let val2 = val;
let val3 = unsafe::reinterpret_cast(val2); let val3 = unsafe::reinterpret_cast(val2);
unsafe::leak(val2); unsafe::forget(val2);
ret val3; ret val3;
} }

View file

@ -220,7 +220,7 @@ type t = *t_opaque;
pure fn get(t: t) -> t_box unsafe { pure fn get(t: t) -> t_box unsafe {
let t2 = unsafe::reinterpret_cast::<t, t_box>(t); let t2 = unsafe::reinterpret_cast::<t, t_box>(t);
let t3 = t2; let t3 = t2;
unsafe::leak(t2); unsafe::forget(t2);
t3 t3
} }

View file

@ -31,6 +31,6 @@ fn main() unsafe {
}; };
let fptr = unsafe::reinterpret_cast(ptr::addr_of(f)); let fptr = unsafe::reinterpret_cast(ptr::addr_of(f));
rustrt::start_task(new_task_id, fptr); rustrt::start_task(new_task_id, fptr);
unsafe::leak(f); unsafe::forget(f);
comm::recv(po); comm::recv(po);
} }