diff --git a/src/queue.rs b/src/queue.rs index acf0f81..6109ada 100644 --- a/src/queue.rs +++ b/src/queue.rs @@ -102,6 +102,7 @@ pub fn push( let next_page = next_page::(flash_range.clone(), current_page); match get_page_state(flash, flash_range.clone(), next_page)? { PageState::Open => { + close_page(flash, flash_range.clone(), current_page)?; partial_close_page(flash, flash_range.clone(), next_page)?; next_address = Some( calculate_page_address::(flash_range.clone(), next_page) @@ -130,6 +131,7 @@ pub fn push( backtrace: std::backtrace::Backtrace::capture(), })?; + close_page(flash, flash_range.clone(), current_page)?; partial_close_page(flash, flash_range.clone(), next_page)?; next_address = Some(next_page_data_start_address); } @@ -143,8 +145,6 @@ pub fn push( }); } } - - close_page(flash, flash_range.clone(), current_page)?; } Item::write_new(flash, next_address.unwrap(), data)?;