Skip to content

Commit

Permalink
fix: update free list data when no push happens
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriele-0201 authored and rphmeier committed Feb 17, 2025
1 parent a5af898 commit 02aa9b0
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions nomt/src/beatree/allocator/free_list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -187,15 +187,16 @@ impl FreeList {
// append the released free list pages
to_push.extend(self.released_portions.drain(..));

if had_pops && to_push.is_empty() {
let pages = if had_pops && to_push.is_empty() {
// note: empty vec when head is empty.
return self.encode_head(page_pool).into_iter().collect();
}

let new_pages = self.preallocate(&mut to_push, bump);
let pages = self.push_and_encode(page_pool, &to_push, new_pages);
// preallocate pops, therefore, we must set it back.
self.pop = false;
self.encode_head(page_pool).into_iter().collect()
} else {
let new_pages = self.preallocate(&mut to_push, bump);
let pages = self.push_and_encode(page_pool, &to_push, new_pages);
// preallocate pops, therefore, we must set it back.
self.pop = false;
pages
};

let (len, fragmented) = len_and_fragmented(&self.portions);
self.len = len;
Expand Down

0 comments on commit 02aa9b0

Please sign in to comment.