File tree Expand file tree Collapse file tree 1 file changed +10
-2
lines changed
src/drivers/virtio/virtqueue Expand file tree Collapse file tree 1 file changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -415,7 +415,11 @@ impl UsedDeviceWritableBuffer {
415415 }
416416
417417 // May panic, but we have written data remaining so there should always be an item
418- let elem = self . elems . remove ( 0 ) ;
418+ let elem = if self . elems . len ( ) <= 2 {
419+ self . elems . swap_remove ( 0 )
420+ } else {
421+ self . elems . remove ( 0 )
422+ } ;
419423
420424 if let BufferElem :: Sized ( sized) = elem {
421425 match sized. downcast :: < MaybeUninit < T > > ( ) {
@@ -441,7 +445,11 @@ impl UsedDeviceWritableBuffer {
441445 return None ;
442446 }
443447
444- let elem = self . elems . remove ( 0 ) ;
448+ let elem = if self . elems . len ( ) <= 2 {
449+ self . elems . swap_remove ( 0 )
450+ } else {
451+ self . elems . remove ( 0 )
452+ } ;
445453
446454 if let BufferElem :: Vector ( mut vector) = elem {
447455 let new_len = u32:: min (
You can’t perform that action at this time.
0 commit comments