@@ -242,7 +242,6 @@ impl Buffer {
242
242
/// end of the buffer.
243
243
pub fn slice < S : RangeBounds < BufferAddress > > ( & self , bounds : S ) -> BufferSlice < ' _ > {
244
244
let ( offset, size) = range_to_offset_size ( bounds) ;
245
- check_buffer_bounds ( self . size , offset, size) ;
246
245
BufferSlice {
247
246
buffer : self ,
248
247
offset,
@@ -674,31 +673,6 @@ impl Drop for Buffer {
674
673
}
675
674
}
676
675
677
- fn check_buffer_bounds (
678
- buffer_size : BufferAddress ,
679
- offset : BufferAddress ,
680
- size : Option < BufferSize > ,
681
- ) {
682
- // A slice of length 0 is invalid, so the offset must not be equal to or greater than the buffer size.
683
- if offset >= buffer_size {
684
- panic ! (
685
- "slice offset {} is out of range for buffer of size {}" ,
686
- offset, buffer_size
687
- ) ;
688
- }
689
-
690
- if let Some ( size) = size {
691
- // Detect integer overflow.
692
- let end = offset. checked_add ( size. get ( ) ) ;
693
- if end. map_or ( true , |end| end > buffer_size) {
694
- panic ! (
695
- "slice offset {} size {} is out of range for buffer of size {}" ,
696
- offset, size, buffer_size
697
- ) ;
698
- }
699
- }
700
- }
701
-
702
676
fn range_to_offset_size < S : RangeBounds < BufferAddress > > (
703
677
bounds : S ,
704
678
) -> ( BufferAddress , Option < BufferSize > ) {
@@ -719,7 +693,7 @@ fn range_to_offset_size<S: RangeBounds<BufferAddress>>(
719
693
720
694
#[ cfg( test) ]
721
695
mod tests {
722
- use super :: { check_buffer_bounds , range_to_offset_size, BufferSize } ;
696
+ use super :: { range_to_offset_size, BufferSize } ;
723
697
724
698
#[ test]
725
699
fn range_to_offset_size_works ( ) {
@@ -742,31 +716,4 @@ mod tests {
742
716
fn range_to_offset_size_panics_for_unbounded_empty_range ( ) {
743
717
range_to_offset_size ( ..0 ) ;
744
718
}
745
-
746
- #[ test]
747
- #[ should_panic]
748
- fn check_buffer_bounds_panics_for_offset_at_size ( ) {
749
- check_buffer_bounds ( 100 , 100 , None ) ;
750
- }
751
-
752
- #[ test]
753
- fn check_buffer_bounds_works_for_end_in_range ( ) {
754
- check_buffer_bounds ( 200 , 100 , BufferSize :: new ( 50 ) ) ;
755
- check_buffer_bounds ( 200 , 100 , BufferSize :: new ( 100 ) ) ;
756
- check_buffer_bounds ( u64:: MAX , u64:: MAX - 100 , BufferSize :: new ( 100 ) ) ;
757
- check_buffer_bounds ( u64:: MAX , 0 , BufferSize :: new ( u64:: MAX ) ) ;
758
- check_buffer_bounds ( u64:: MAX , 1 , BufferSize :: new ( u64:: MAX - 1 ) ) ;
759
- }
760
-
761
- #[ test]
762
- #[ should_panic]
763
- fn check_buffer_bounds_panics_for_end_over_size ( ) {
764
- check_buffer_bounds ( 200 , 100 , BufferSize :: new ( 101 ) ) ;
765
- }
766
-
767
- #[ test]
768
- #[ should_panic]
769
- fn check_buffer_bounds_panics_for_end_wraparound ( ) {
770
- check_buffer_bounds ( u64:: MAX , 1 , BufferSize :: new ( u64:: MAX ) ) ;
771
- }
772
719
}
0 commit comments