diff options
| author | Chayim Refael Friedman <chayimfr@gmail.com> | 2023-01-16 01:15:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-16 01:15:06 +0200 |
| commit | 8dbc878a350c51f4e6c75fab3cdec45008a92f9e (patch) | |
| tree | df9cafcc583be8802c63fba2beb4f9b0484c8b1f | |
| parent | 9e75dddf609c0201d03f9792e850f95d6a283d11 (diff) | |
| download | rust-8dbc878a350c51f4e6c75fab3cdec45008a92f9e.tar.gz rust-8dbc878a350c51f4e6c75fab3cdec45008a92f9e.zip | |
Avoid unsafe code in `to_ascii_[lower/upper]case()`
| -rw-r--r-- | library/alloc/src/str.rs | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/library/alloc/src/str.rs b/library/alloc/src/str.rs index b28d20cda17..afbe5cfaf8e 100644 --- a/library/alloc/src/str.rs +++ b/library/alloc/src/str.rs @@ -559,10 +559,9 @@ impl str { #[stable(feature = "ascii_methods_on_intrinsics", since = "1.23.0")] #[inline] pub fn to_ascii_uppercase(&self) -> String { - let mut bytes = self.as_bytes().to_vec(); - bytes.make_ascii_uppercase(); - // make_ascii_uppercase() preserves the UTF-8 invariant. - unsafe { String::from_utf8_unchecked(bytes) } + let mut s = self.to_owned(); + s.make_ascii_uppercase(); + s } /// Returns a copy of this string where each character is mapped to its @@ -592,10 +591,9 @@ impl str { #[stable(feature = "ascii_methods_on_intrinsics", since = "1.23.0")] #[inline] pub fn to_ascii_lowercase(&self) -> String { - let mut bytes = self.as_bytes().to_vec(); - bytes.make_ascii_lowercase(); - // make_ascii_lowercase() preserves the UTF-8 invariant. - unsafe { String::from_utf8_unchecked(bytes) } + let mut s = self.to_owned(); + s.make_ascii_lowercase(); + s } } |
