File tree Expand file tree Collapse file tree 2 files changed +7
-5
lines changed
Expand file tree Collapse file tree 2 files changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -158,8 +158,9 @@ impl ArrayReader for StructArrayReader {
158158 }
159159 }
160160 None => {
161- for def_level in def_levels {
162- bitmap_builder. append ( * def_level >= self . struct_def_level )
161+ // Safety: slice iterator has a trusted length
162+ unsafe {
163+ bitmap_builder. extend_trusted_len ( def_levels. iter ( ) . map ( |level| * level >= self . struct_def_level ) )
163164 }
164165 }
165166 }
Original file line number Diff line number Diff line change @@ -160,9 +160,10 @@ impl DefinitionLevelDecoder for DefinitionLevelBufferDecoder {
160160 let start = levels. len ( ) ;
161161 let ( values_read, levels_read) = decoder. read_def_levels ( levels, num_levels) ?;
162162
163- nulls. reserve ( levels_read) ;
164- for i in & levels[ start..] {
165- nulls. append ( i == max_level) ;
163+ // Safety: slice iterator has a trusted length
164+ unsafe {
165+ nulls
166+ . extend_trusted_len ( levels[ start..] . iter ( ) . map ( |level| level == max_level) ) ;
166167 }
167168
168169 Ok ( ( values_read, levels_read) )
You can’t perform that action at this time.
0 commit comments