@@ -31,7 +31,7 @@ pub fn tsk_column_access<
31
31
tsk_column_access_detail ( row, column, column_length) . map ( |v| v. into ( ) )
32
32
}
33
33
34
- pub fn tsk_ragged_column_access_detail <
34
+ fn tsk_ragged_column_access_detail <
35
35
R : Into < bindings:: tsk_id_t > ,
36
36
L : Into < bindings:: tsk_size_t > ,
37
37
T : Copy ,
@@ -48,7 +48,9 @@ pub fn tsk_ragged_column_access_detail<
48
48
None
49
49
} else {
50
50
assert ! ( !column. is_null( ) ) ;
51
- assert ! ( !column. is_null( ) ) ;
51
+ assert ! ( !offset. is_null( ) ) ;
52
+ // SAFETY: pointers are not null
53
+ // and *_length are given by tskit-c
52
54
let index = row as isize ;
53
55
let start = unsafe { * offset. offset ( index) } ;
54
56
let stop = if ( row as bindings:: tsk_size_t ) < column_length {
@@ -80,8 +82,7 @@ pub fn tsk_ragged_column_access<
80
82
offset : * const bindings:: tsk_size_t ,
81
83
offset_length : bindings:: tsk_size_t ,
82
84
) -> Option < & ' a [ O ] > {
83
- match tsk_ragged_column_access_detail ( row, column, column_length, offset, offset_length) {
84
- Some ( ( p, n) ) => Some ( unsafe { std:: slice:: from_raw_parts ( p. cast :: < O > ( ) , n) } ) ,
85
- None => None ,
86
- }
85
+ // SAFETY: see tsk_ragged_column_access_detail
86
+ tsk_ragged_column_access_detail ( row, column, column_length, offset, offset_length)
87
+ . map ( |( p, n) | unsafe { std:: slice:: from_raw_parts ( p. cast :: < O > ( ) , n) } )
87
88
}
0 commit comments