File tree Expand file tree Collapse file tree 1 file changed +4
-10
lines changed Expand file tree Collapse file tree 1 file changed +4
-10
lines changed Original file line number Diff line number Diff line change @@ -225,17 +225,11 @@ where
225225 if is_subset {
226226 // Use `merge_buffer` as allocation for padding `data` to `WRITE_SIZE`
227227 let offset = addr as usize % S :: WRITE_SIZE ;
228- self . merge_buffer [ ..S :: WRITE_SIZE ]
229- . iter_mut ( )
230- . for_each ( |c| * c = 0u8 ) ;
231- self . merge_buffer [ ..S :: WRITE_SIZE ]
232- . iter_mut ( )
233- . skip ( offset)
234- . zip ( data)
235- . for_each ( |( a, b) | * a = * b) ;
236- let aligned_addr = addr - offset as u32 ;
228+ let alligned_end = data. len ( ) % S :: WRITE_SIZE ;
229+ self . merge_buffer [ ..S :: WRITE_SIZE ] . fill ( 0xff ) ;
230+ self . merge_buffer [ offset..data. len ( ) ] . copy_from_slice ( data) ;
237231 self . storage
238- . try_write ( aligned_addr , & self . merge_buffer [ ..S :: WRITE_SIZE ] ) ?;
232+ . try_write ( addr - offset as u32 , & self . merge_buffer [ ..S :: WRITE_SIZE ] ) ?;
239233 } else {
240234 self . storage . try_erase ( page. start , page. end ( ) ) ?;
241235 self . merge_buffer [ ..S :: ERASE_SIZE ]
You can’t perform that action at this time.
0 commit comments