mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 08:44:35 +00:00
Add comment about stabilizing CString::from_ptr
This naming needs to consider the raw vs ptr naming of Box/CStr/CString/slice/etc.
This commit is contained in:
parent
c9b40a30c0
commit
913c2273eb
@ -124,6 +124,7 @@ impl<T : ?Sized> Box<T> {
|
||||
#[unstable(feature = "box_raw",
|
||||
reason = "may be renamed or moved out of Box scope")]
|
||||
#[inline]
|
||||
// NB: may want to be called from_ptr, see comments on CStr::from_ptr
|
||||
pub unsafe fn from_raw(raw: *mut T) -> Self {
|
||||
mem::transmute(raw)
|
||||
}
|
||||
@ -147,6 +148,7 @@ impl<T : ?Sized> Box<T> {
|
||||
/// ```
|
||||
#[unstable(feature = "box_raw", reason = "may be renamed")]
|
||||
#[inline]
|
||||
// NB: may want to be called into_ptr, see comments on CStr::from_ptr
|
||||
pub fn into_raw(b: Box<T>) -> *mut T {
|
||||
unsafe { mem::transmute(b) }
|
||||
}
|
||||
|
@ -206,6 +206,9 @@ impl CString {
|
||||
/// `into_ptr`. The length of the string will be recalculated
|
||||
/// using the pointer.
|
||||
#[unstable(feature = "cstr_memory", reason = "recently added")]
|
||||
// NB: may want to be called from_raw, needs to consider CStr::from_ptr,
|
||||
// Box::from_raw (or whatever it's currently called), and
|
||||
// slice::from_raw_parts
|
||||
pub unsafe fn from_ptr(ptr: *const libc::c_char) -> CString {
|
||||
let len = libc::strlen(ptr) + 1; // Including the NUL byte
|
||||
let slice = slice::from_raw_parts(ptr, len as usize);
|
||||
@ -221,6 +224,7 @@ impl CString {
|
||||
///
|
||||
/// Failure to call `from_ptr` will lead to a memory leak.
|
||||
#[unstable(feature = "cstr_memory", reason = "recently added")]
|
||||
// NB: may want to be called into_raw, see comments on from_ptr
|
||||
pub fn into_ptr(self) -> *const libc::c_char {
|
||||
// It is important that the bytes be sized to fit - we need
|
||||
// the capacity to be determinable from the string length, and
|
||||
|
Loading…
Reference in New Issue
Block a user