diff --git a/src/pdata/space_map_common.rs b/src/pdata/space_map_common.rs index 33e3a51..e2f8918 100644 --- a/src/pdata/space_map_common.rs +++ b/src/pdata/space_map_common.rs @@ -209,7 +209,7 @@ pub fn write_common(w: &mut WriteBatcher, sm: &dyn SpaceMap) -> Result<(Vec sm.get_nr_blocks()? { + if b >= sm.get_nr_blocks()? { break; } let rc = sm.get(b)?; diff --git a/src/pdata/space_map_disk.rs b/src/pdata/space_map_disk.rs index 1389d78..88e1749 100644 --- a/src/pdata/space_map_disk.rs +++ b/src/pdata/space_map_disk.rs @@ -16,6 +16,7 @@ pub fn write_disk_sm(w: &mut WriteBatcher, sm: &dyn SpaceMap) -> Result } let bitmap_root = index_builder.complete(w)?; + w.flush()?; Ok(SMRoot { nr_blocks: sm.get_nr_blocks()?, diff --git a/src/pdata/space_map_metadata.rs b/src/pdata/space_map_metadata.rs index 85f6828..4567b05 100644 --- a/src/pdata/space_map_metadata.rs +++ b/src/pdata/space_map_metadata.rs @@ -126,6 +126,7 @@ pub fn write_metadata_sm(w: &mut WriteBatcher, sm: &dyn SpaceMap) -> Result