@@ -376,35 +376,6 @@ pub fn from_utf8_mut(v: &mut [u8]) -> Result<&mut str, Utf8Error> {
376
376
Ok ( unsafe { from_utf8_unchecked_mut ( v) } )
377
377
}
378
378
379
- /// Forms a str from a pointer and a length.
380
- ///
381
- /// The `len` argument is the number of bytes in the string.
382
- ///
383
- /// # Safety
384
- ///
385
- /// This function is unsafe as there is no guarantee that the given pointer is
386
- /// valid for `len` bytes, nor whether the lifetime inferred is a suitable
387
- /// lifetime for the returned str.
388
- ///
389
- /// The data must be valid UTF-8
390
- ///
391
- /// `p` must be non-null and aligned, even for zero-length strs, as is
392
- /// required for all references. However, for zero-length strs, `p` can be
393
- /// a bogus non-dereferencable pointer such as [`NonNull::dangling()`].
394
- ///
395
- /// # Caveat
396
- ///
397
- /// The lifetime for the returned str is inferred from its usage. To
398
- /// prevent accidental misuse, it's suggested to tie the lifetime to whichever
399
- /// source lifetime is safe in the context, such as by providing a helper
400
- /// function taking the lifetime of a host value for the str, or by explicit
401
- /// annotation.
402
- ///
403
- /// [`NonNull::dangling()`]: ../../std/ptr/struct.NonNull.html#method.dangling
404
- unsafe fn from_raw_parts_mut < ' a > ( p : * mut u8 , len : usize ) -> & ' a mut str {
405
- from_utf8_unchecked_mut ( slice:: from_raw_parts_mut ( p, len) )
406
- }
407
-
408
379
/// Converts a slice of bytes to a string slice without checking
409
380
/// that the string contains valid UTF-8.
410
381
///
@@ -2600,8 +2571,11 @@ impl str {
2600
2571
let len = self . len ( ) ;
2601
2572
let ptr = self . as_ptr ( ) as * mut u8 ;
2602
2573
unsafe {
2603
- ( from_raw_parts_mut ( ptr, mid) ,
2604
- from_raw_parts_mut ( ptr. offset ( mid as isize ) , len - mid) )
2574
+ ( from_utf8_unchecked_mut ( slice:: from_raw_parts_mut ( ptr, mid) ) ,
2575
+ from_utf8_unchecked_mut ( slice:: from_raw_parts_mut (
2576
+ ptr. offset ( mid as isize ) ,
2577
+ len - mid
2578
+ ) ) )
2605
2579
}
2606
2580
} else {
2607
2581
slice_error_fail ( self , 0 , mid)
0 commit comments