@@ -242,7 +242,6 @@ impl Buffer {
242
242
/// - If `bounds` has a length less than 1.
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,
@@ -865,31 +864,6 @@ impl Drop for BufferViewMut<'_> {
865
864
}
866
865
}
867
866
868
- fn check_buffer_bounds (
869
- buffer_size : BufferAddress ,
870
- offset : BufferAddress ,
871
- size : Option < BufferSize > ,
872
- ) {
873
- // A slice of length 0 is invalid, so the offset must not be equal to or greater than the buffer size.
874
- if offset >= buffer_size {
875
- panic ! (
876
- "slice offset {} is out of range for buffer of size {}" ,
877
- offset, buffer_size
878
- ) ;
879
- }
880
-
881
- if let Some ( size) = size {
882
- // Detect integer overflow.
883
- let end = offset. checked_add ( size. get ( ) ) ;
884
- if end. is_none_or ( |end| end > buffer_size) {
885
- panic ! (
886
- "slice offset {} size {} is out of range for buffer of size {}" ,
887
- offset, size, buffer_size
888
- ) ;
889
- }
890
- }
891
- }
892
-
893
867
fn range_to_offset_size < S : RangeBounds < BufferAddress > > (
894
868
bounds : S ,
895
869
) -> ( BufferAddress , Option < BufferSize > ) {
@@ -910,7 +884,7 @@ fn range_to_offset_size<S: RangeBounds<BufferAddress>>(
910
884
911
885
#[ cfg( test) ]
912
886
mod tests {
913
- use super :: { check_buffer_bounds , range_to_offset_size, BufferSize } ;
887
+ use super :: { range_to_offset_size, BufferSize } ;
914
888
915
889
#[ test]
916
890
fn range_to_offset_size_works ( ) {
@@ -933,31 +907,4 @@ mod tests {
933
907
fn range_to_offset_size_panics_for_unbounded_empty_range ( ) {
934
908
range_to_offset_size ( ..0 ) ;
935
909
}
936
-
937
- #[ test]
938
- #[ should_panic]
939
- fn check_buffer_bounds_panics_for_offset_at_size ( ) {
940
- check_buffer_bounds ( 100 , 100 , None ) ;
941
- }
942
-
943
- #[ test]
944
- fn check_buffer_bounds_works_for_end_in_range ( ) {
945
- check_buffer_bounds ( 200 , 100 , BufferSize :: new ( 50 ) ) ;
946
- check_buffer_bounds ( 200 , 100 , BufferSize :: new ( 100 ) ) ;
947
- check_buffer_bounds ( u64:: MAX , u64:: MAX - 100 , BufferSize :: new ( 100 ) ) ;
948
- check_buffer_bounds ( u64:: MAX , 0 , BufferSize :: new ( u64:: MAX ) ) ;
949
- check_buffer_bounds ( u64:: MAX , 1 , BufferSize :: new ( u64:: MAX - 1 ) ) ;
950
- }
951
-
952
- #[ test]
953
- #[ should_panic]
954
- fn check_buffer_bounds_panics_for_end_over_size ( ) {
955
- check_buffer_bounds ( 200 , 100 , BufferSize :: new ( 101 ) ) ;
956
- }
957
-
958
- #[ test]
959
- #[ should_panic]
960
- fn check_buffer_bounds_panics_for_end_wraparound ( ) {
961
- check_buffer_bounds ( u64:: MAX , 1 , BufferSize :: new ( u64:: MAX ) ) ;
962
- }
963
910
}
0 commit comments