From fe66c61ff5eb2178c0728a3ad2d43cc08b9ce2ef Mon Sep 17 00:00:00 2001 From: "Levy A." Date: Tue, 22 Jul 2025 16:26:45 -0300 Subject: [PATCH] add `usable_space` to `DatabaseHeader` we already have the `DatabaseHeader`, we don't need the cached result --- core/storage/pager.rs | 2 +- core/storage/sqlite3_ondisk.rs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/storage/pager.rs b/core/storage/pager.rs index 7d70cb427..361525510 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -1422,7 +1422,7 @@ impl Pager { // Reserve 2 slots for the trunk page header which is 8 bytes or 2*LEAF_ENTRY_SIZE let max_free_list_entries = - (self.usable_space() / LEAF_ENTRY_SIZE) - RESERVED_SLOTS; + (header.usable_space() / LEAF_ENTRY_SIZE) - RESERVED_SLOTS; if number_of_leaf_pages < max_free_list_entries as u32 { turso_assert!( diff --git a/core/storage/sqlite3_ondisk.rs b/core/storage/sqlite3_ondisk.rs index fae5f2ea0..7d3086027 100644 --- a/core/storage/sqlite3_ondisk.rs +++ b/core/storage/sqlite3_ondisk.rs @@ -276,6 +276,10 @@ impl DatabaseHeader { const _CHECK: () = { assert!(Self::SIZE == 100); }; + + pub fn usable_space(self) -> usize { + (self.page_size.get() as usize) - (self.reserved_space as usize) + } } impl Default for DatabaseHeader {