@@ -167,8 +167,8 @@ impl<VM: VMBinding> Space<VM> for ImmixSpace<VM> {
167167 fn as_sft ( & self ) -> & ( dyn SFT + Sync + ' static ) {
168168 self
169169 }
170- fn as_inspector ( & self ) -> Option < & dyn crate :: util:: heap:: inspection:: SpaceInspector > {
171- Some ( self )
170+ fn as_inspector ( & self ) -> & dyn crate :: util:: heap:: inspection:: SpaceInspector {
171+ self
172172 }
173173 fn get_page_resource ( & self ) -> & dyn PageResource < VM > {
174174 & self . pr
@@ -412,7 +412,7 @@ impl<VM: VMBinding> ImmixSpace<VM> {
412412 if self . common . needs_log_bit {
413413 if let MetadataSpec :: OnSide ( side) = * VM :: VMObjectModel :: GLOBAL_LOG_BIT_SPEC {
414414 for chunk in self . chunk_map . all_chunks ( ) {
415- side. bzero_metadata ( chunk . start ( ) , Chunk :: BYTES ) ;
415+ side. bzero_metadata ( chunk. start ( ) , Chunk :: BYTES ) ;
416416 }
417417 }
418418 }
@@ -1184,24 +1184,28 @@ impl ClearVOBitsAfterPrepare {
11841184
11851185mod inspector {
11861186 use super :: * ;
1187- use crate :: util:: heap:: inspection:: { RegionInspector , SpaceInspector , list_child_regions } ;
1187+ use crate :: util:: heap:: inspection:: { list_sub_regions , RegionInspector , SpaceInspector } ;
11881188 impl < VM : VMBinding > SpaceInspector for ImmixSpace < VM > {
1189- fn name ( & self ) -> & str {
1190- SFT :: name ( self )
1189+ fn list_top_regions ( & self ) -> Vec < Box < dyn RegionInspector > > {
1190+ self . chunk_map
1191+ . all_chunks ( )
1192+ . map ( |r : Chunk | Box :: new ( r) as Box < dyn RegionInspector > )
1193+ . collect ( )
11911194 }
11921195
1193- fn list_regions ( & self , parent_region : Option < & dyn RegionInspector > ) -> Vec < Box < dyn RegionInspector > > {
1194- if let Some ( parent_region ) = parent_region {
1195- list_child_regions :: < Chunk , Block > ( parent_region ) . or_else ( || {
1196- if ! crate :: policy :: immix :: BLOCK_ONLY {
1197- list_child_regions :: < Block , Line > ( parent_region)
1198- } else {
1199- None
1200- }
1201- } ) . unwrap_or_else ( || vec ! [ ] )
1202- } else {
1203- self . chunk_map . all_chunks ( ) . map ( | r : Chunk | Box :: new ( r ) as Box < dyn RegionInspector > ) . collect ( )
1196+ fn list_sub_regions (
1197+ & self ,
1198+ parent_region : & dyn RegionInspector ,
1199+ ) -> Vec < Box < dyn RegionInspector > > {
1200+ if let Some ( regions ) = list_sub_regions :: < Chunk , Block > ( parent_region) {
1201+ return regions ;
1202+ }
1203+ if ! crate :: policy :: immix :: BLOCK_ONLY {
1204+ if let Some ( regions ) = list_sub_regions :: < Block , Line > ( parent_region ) {
1205+ return regions ;
1206+ }
12041207 }
1208+ vec ! [ ]
12051209 }
12061210 }
12071211}
0 commit comments