Rollup merge of #126885 - Borgerr:rm_internal_pathbuf_asmutvec, r=wor… · model-checking/verify-rust-std@9273373 (original) (raw)
`@@ -1163,11 +1163,6 @@ pub struct PathBuf {
`
1163
1163
`}
`
1164
1164
``
1165
1165
`impl PathBuf {
`
1166
``
`-
#[inline]
`
1167
``
`-
fn as_mut_vec(&mut self) -> &mut Vec {
`
1168
``
`-
self.inner.as_mut_vec_for_path_buf()
`
1169
``
`-
}
`
1170
``
-
1171
1166
`` /// Allocates an empty PathBuf
.
``
1172
1167
`///
`
1173
1168
`/// # Examples
`
`@@ -1290,7 +1285,8 @@ impl PathBuf {
`
1290
1285
``
1291
1286
`fn _push(&mut self, path: &Path) {
`
1292
1287
`// in general, a separator is needed if the rightmost byte is not a separator
`
1293
``
`-
let mut need_sep = self.as_mut_vec().last().map(|c| !is_sep_byte(*c)).unwrap_or(false);
`
``
1288
`+
let buf = self.inner.as_encoded_bytes();
`
``
1289
`+
let mut need_sep = buf.last().map(|c| !is_sep_byte(*c)).unwrap_or(false);
`
1294
1290
``
1295
1291
`` // in the special case of C:
on Windows, do not add a separator
``
1296
1292
`let comps = self.components();
`
`@@ -1304,7 +1300,7 @@ impl PathBuf {
`
1304
1300
``
1305
1301
`` // absolute path
replaces self
``
1306
1302
`if path.is_absolute() || path.prefix().is_some() {
`
1307
``
`-
self.as_mut_vec().truncate(0);
`
``
1303
`+
self.inner.truncate(0);
`
1308
1304
``
1309
1305
`// verbatim paths need . and .. removed
`
1310
1306
`} else if comps.prefix_verbatim() && !path.inner.is_empty() {
`
`@@ -1349,7 +1345,7 @@ impl PathBuf {
`
1349
1345
`` // path
has a root but no prefix, e.g., \windows
(Windows only)
``
1350
1346
`} else if path.has_root() {
`
1351
1347
`let prefix_len = self.components().prefix_remaining();
`
1352
``
`-
self.as_mut_vec().truncate(prefix_len);
`
``
1348
`+
self.inner.truncate(prefix_len);
`
1353
1349
``
1354
1350
`` // path
is a pure relative path
``
1355
1351
`} else if need_sep {
`
`@@ -1382,7 +1378,7 @@ impl PathBuf {
`
1382
1378
`pub fn pop(&mut self) -> bool {
`
1383
1379
`match self.parent().map(|p| p.as_u8_slice().len()) {
`
1384
1380
`Some(len) => {
`
1385
``
`-
self.as_mut_vec().truncate(len);
`
``
1381
`+
self.inner.truncate(len);
`
1386
1382
`true
`
1387
1383
`}
`
1388
1384
`None => false,
`
`@@ -1510,15 +1506,14 @@ impl PathBuf {
`
1510
1506
`// truncate until right after the file stem
`
1511
1507
`let end_file_stem = file_stem[file_stem.len()..].as_ptr().addr();
`
1512
1508
`let start = self.inner.as_encoded_bytes().as_ptr().addr();
`
1513
``
`-
let v = self.as_mut_vec();
`
1514
``
`-
v.truncate(end_file_stem.wrapping_sub(start));
`
``
1509
`+
self.inner.truncate(end_file_stem.wrapping_sub(start));
`
1515
1510
``
1516
1511
`// add the new extension, if any
`
1517
``
`-
let new = extension.as_encoded_bytes();
`
``
1512
`+
let new = extension;
`
1518
1513
`if !new.is_empty() {
`
1519
``
`-
v.reserve_exact(new.len() + 1);
`
1520
``
`-
v.push(b'.');
`
1521
``
`-
v.extend_from_slice(new);
`
``
1514
`+
self.inner.reserve_exact(new.len() + 1);
`
``
1515
`+
self.inner.push(OsStr::new("."));
`
``
1516
`+
self.inner.push(new);
`
1522
1517
`}
`
1523
1518
``
1524
1519
`true
`
`@@ -2645,18 +2640,18 @@ impl Path {
`
2645
2640
`None => {
`
2646
2641
`// Enough capacity for the extension and the dot
`
2647
2642
`let capacity = self_len + extension.len() + 1;
`
2648
``
`-
let whole_path = self_bytes.iter();
`
``
2643
`+
let whole_path = self_bytes;
`
2649
2644
`(capacity, whole_path)
`
2650
2645
`}
`
2651
2646
`Some(previous_extension) => {
`
2652
2647
`let capacity = self_len + extension.len() - previous_extension.len();
`
2653
``
`-
let path_till_dot = self_bytes[..self_len - previous_extension.len()].iter();
`
``
2648
`+
let path_till_dot = &self_bytes[..self_len - previous_extension.len()];
`
2654
2649
`(capacity, path_till_dot)
`
2655
2650
`}
`
2656
2651
`};
`
2657
2652
``
2658
2653
`let mut new_path = PathBuf::with_capacity(new_capacity);
`
2659
``
`-
new_path.as_mut_vec().extend(slice_to_copy);
`
``
2654
`+
new_path.inner.extend_from_slice(slice_to_copy);
`
2660
2655
` new_path.set_extension(extension);
`
2661
2656
` new_path
`
2662
2657
`}
`