about summary refs log tree commit diff
path: root/src/liballoc/boxed_test.rs
AgeCommit message (Collapse)AuthorLines
2015-03-05Remove integer suffixes where the types in compiled code are identical.Eduard Burtescu-2/+2
2015-02-09int/uint => isize/usize in liblibc/liballoc/libarenawe-5/+5
2015-02-02Auto merge of #21647 - alfie:suffix-medium, r=alexcrichtonbors-5/+5
2015-02-01box: into_raw, from_raw functionsStepan Koltsov-0/+42
Functions are needed for safety and convenience. It is a common pattern to use `mem::transmute` to convert between `Box` and raw pointer, like this: ``` let b = Box::new(3); let p = mem::transmute(b); // pass `p` to some C library ``` After this commit, conversion can be written as: ``` let p = boxed::into_raw(b); ``` `into_raw` and `from_raw` functions are still unsafe, but they are much safer than `mem::transmute`, because *raw functions do not convert between incompatible pointers. For example, this likely incorrect code can be successfully compiled: ``` let p: *mut u64 = ... let b: Box<u32> = mem::transmute(p); ``` Using `from_raw` results in compile-time error: ``` let p: *mut u64 = ... let b: Box<u32> = Box::from_raw(p); // compile-time error ``` `into_raw` and `from_raw` functions are similar to C++ `std::unique_ptr` `release` function [1] and constructor from pointer [2]. [1] http://en.cppreference.com/w/cpp/memory/unique_ptr/release [2] http://en.cppreference.com/w/cpp/memory/unique_ptr/unique_ptr
2015-02-01More deprecating of i/u suffixes in librariesAlfie John-5/+5
2015-01-30Remove all `i` suffixesTobias Bucher-1/+1
2015-01-20alloc::boxed: enable testStepan Koltsov-0/+75
Previously test was disabled due to `#[cfg(test)]` before `mod boxed`.