@@ -104,8 +104,8 @@ impl FileDesc {
104104 target_os = "vita" ,
105105 target_os = "nuttx"
106106 ) ) ) ]
107- pub fn read_vectored ( & self , mut bufs : & mut [ IoSliceMut < ' _ > ] ) -> io:: Result < usize > {
108- IoSliceMut :: limit_slices ( & mut bufs, max_iov ( ) ) ;
107+ pub fn read_vectored ( & self , bufs : & mut [ IoSliceMut < ' _ > ] ) -> io:: Result < usize > {
108+ let bufs = io :: limit_slices_mut! ( bufs, max_iov( ) ) ;
109109 let ret = cvt ( unsafe {
110110 libc:: readv (
111111 self . as_raw_fd ( ) ,
@@ -195,12 +195,8 @@ impl FileDesc {
195195 target_os = "netbsd" ,
196196 target_os = "openbsd" , // OpenBSD 2.7
197197 ) ) ]
198- pub fn read_vectored_at (
199- & self ,
200- mut bufs : & mut [ IoSliceMut < ' _ > ] ,
201- offset : u64 ,
202- ) -> io:: Result < usize > {
203- IoSliceMut :: limit_slices ( & mut bufs, max_iov ( ) ) ;
198+ pub fn read_vectored_at ( & self , bufs : & mut [ IoSliceMut < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
199+ let bufs = io:: limit_slices_mut!( bufs, max_iov( ) ) ;
204200 let ret = cvt ( unsafe {
205201 libc:: preadv (
206202 self . as_raw_fd ( ) ,
@@ -237,11 +233,7 @@ impl FileDesc {
237233 // passing 64-bits parameters to syscalls, so we fallback to the default
238234 // implementation if `preadv` is not available.
239235 #[ cfg( all( target_os = "android" , target_pointer_width = "64" ) ) ]
240- pub fn read_vectored_at (
241- & self ,
242- mut bufs : & mut [ IoSliceMut < ' _ > ] ,
243- offset : u64 ,
244- ) -> io:: Result < usize > {
236+ pub fn read_vectored_at ( & self , bufs : & mut [ IoSliceMut < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
245237 super :: weak:: syscall!(
246238 fn preadv(
247239 fd: libc:: c_int,
@@ -251,7 +243,7 @@ impl FileDesc {
251243 ) -> isize ;
252244 ) ;
253245
254- IoSliceMut :: limit_slices ( & mut bufs, max_iov ( ) ) ;
246+ let bufs = io :: limit_slices_mut! ( bufs, max_iov( ) ) ;
255247 let ret = cvt ( unsafe {
256248 preadv (
257249 self . as_raw_fd ( ) ,
@@ -267,11 +259,7 @@ impl FileDesc {
267259 // FIXME(#115199): Rust currently omits weak function definitions
268260 // and its metadata from LLVM IR.
269261 #[ no_sanitize( cfi) ]
270- pub fn read_vectored_at (
271- & self ,
272- mut bufs : & mut [ IoSliceMut < ' _ > ] ,
273- offset : u64 ,
274- ) -> io:: Result < usize > {
262+ pub fn read_vectored_at ( & self , bufs : & mut [ IoSliceMut < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
275263 super :: weak:: weak!(
276264 fn preadv64(
277265 fd: libc:: c_int,
@@ -283,7 +271,7 @@ impl FileDesc {
283271
284272 match preadv64. get ( ) {
285273 Some ( preadv) => {
286- IoSliceMut :: limit_slices ( & mut bufs, max_iov ( ) ) ;
274+ let bufs = io :: limit_slices_mut! ( bufs, max_iov( ) ) ;
287275 let ret = cvt ( unsafe {
288276 preadv (
289277 self . as_raw_fd ( ) ,
@@ -308,11 +296,7 @@ impl FileDesc {
308296 // These versions may be newer than the minimum supported versions of OS's we support so we must
309297 // use "weak" linking.
310298 #[ cfg( target_vendor = "apple" ) ]
311- pub fn read_vectored_at (
312- & self ,
313- mut bufs : & mut [ IoSliceMut < ' _ > ] ,
314- offset : u64 ,
315- ) -> io:: Result < usize > {
299+ pub fn read_vectored_at ( & self , bufs : & mut [ IoSliceMut < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
316300 super :: weak:: weak!(
317301 fn preadv(
318302 fd: libc:: c_int,
@@ -324,7 +308,7 @@ impl FileDesc {
324308
325309 match preadv. get ( ) {
326310 Some ( preadv) => {
327- IoSliceMut :: limit_slices ( & mut bufs, max_iov ( ) ) ;
311+ let bufs = io :: limit_slices_mut! ( bufs, max_iov( ) ) ;
328312 let ret = cvt ( unsafe {
329313 preadv (
330314 self . as_raw_fd ( ) ,
@@ -356,8 +340,8 @@ impl FileDesc {
356340 target_os = "vita" ,
357341 target_os = "nuttx"
358342 ) ) ) ]
359- pub fn write_vectored ( & self , mut bufs : & [ IoSlice < ' _ > ] ) -> io:: Result < usize > {
360- IoSlice :: limit_slices ( & mut bufs, max_iov ( ) ) ;
343+ pub fn write_vectored ( & self , bufs : & [ IoSlice < ' _ > ] ) -> io:: Result < usize > {
344+ let bufs = io :: limit_slices! ( bufs, max_iov( ) ) ;
361345 let ret = cvt ( unsafe {
362346 libc:: writev (
363347 self . as_raw_fd ( ) ,
@@ -426,8 +410,8 @@ impl FileDesc {
426410 target_os = "netbsd" ,
427411 target_os = "openbsd" , // OpenBSD 2.7
428412 ) ) ]
429- pub fn write_vectored_at ( & self , mut bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
430- IoSlice :: limit_slices ( & mut bufs, max_iov ( ) ) ;
413+ pub fn write_vectored_at ( & self , bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
414+ let bufs = io :: limit_slices! ( bufs, max_iov( ) ) ;
431415 let ret = cvt ( unsafe {
432416 libc:: pwritev (
433417 self . as_raw_fd ( ) ,
@@ -464,7 +448,7 @@ impl FileDesc {
464448 // passing 64-bits parameters to syscalls, so we fallback to the default
465449 // implementation if `pwritev` is not available.
466450 #[ cfg( all( target_os = "android" , target_pointer_width = "64" ) ) ]
467- pub fn write_vectored_at ( & self , mut bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
451+ pub fn write_vectored_at ( & self , bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
468452 super :: weak:: syscall!(
469453 fn pwritev(
470454 fd: libc:: c_int,
@@ -474,7 +458,7 @@ impl FileDesc {
474458 ) -> isize ;
475459 ) ;
476460
477- IoSlice :: limit_slices ( & mut bufs, max_iov ( ) ) ;
461+ let bufs = io :: limit_slices! ( bufs, max_iov( ) ) ;
478462 let ret = cvt ( unsafe {
479463 pwritev (
480464 self . as_raw_fd ( ) ,
@@ -487,7 +471,7 @@ impl FileDesc {
487471 }
488472
489473 #[ cfg( all( target_os = "android" , target_pointer_width = "32" ) ) ]
490- pub fn write_vectored_at ( & self , mut bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
474+ pub fn write_vectored_at ( & self , bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
491475 super :: weak:: weak!(
492476 fn pwritev64(
493477 fd: libc:: c_int,
@@ -499,7 +483,7 @@ impl FileDesc {
499483
500484 match pwritev64. get ( ) {
501485 Some ( pwritev) => {
502- IoSlice :: limit_slices ( & mut bufs, max_iov ( ) ) ;
486+ let bufs = io :: limit_slices! ( bufs, max_iov( ) ) ;
503487 let ret = cvt ( unsafe {
504488 pwritev (
505489 self . as_raw_fd ( ) ,
@@ -524,7 +508,7 @@ impl FileDesc {
524508 // These versions may be newer than the minimum supported versions of OS's we support so we must
525509 // use "weak" linking.
526510 #[ cfg( target_vendor = "apple" ) ]
527- pub fn write_vectored_at ( & self , mut bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
511+ pub fn write_vectored_at ( & self , bufs : & [ IoSlice < ' _ > ] , offset : u64 ) -> io:: Result < usize > {
528512 super :: weak:: weak!(
529513 fn pwritev(
530514 fd: libc:: c_int,
@@ -536,7 +520,7 @@ impl FileDesc {
536520
537521 match pwritev. get ( ) {
538522 Some ( pwritev) => {
539- IoSlice :: limit_slices ( & mut bufs, max_iov ( ) ) ;
523+ let bufs = io :: limit_slices! ( bufs, max_iov( ) ) ;
540524 let ret = cvt ( unsafe {
541525 pwritev (
542526 self . as_raw_fd ( ) ,
0 commit comments