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
225
225
if is_subset {
226
226
// Use `merge_buffer` as allocation for padding `data` to `WRITE_SIZE`
227
227
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) ;
237
231
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 ] ) ?;
239
233
} else {
240
234
self . storage . try_erase ( page. start , page. end ( ) ) ?;
241
235
self . merge_buffer [ ..S :: ERASE_SIZE ]
You can’t perform that action at this time.
0 commit comments