@@ -167,8 +167,8 @@ impl<VM: VMBinding> Space<VM> for ImmixSpace<VM> {
167
167
fn as_sft ( & self ) -> & ( dyn SFT + Sync + ' static ) {
168
168
self
169
169
}
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
172
172
}
173
173
fn get_page_resource ( & self ) -> & dyn PageResource < VM > {
174
174
& self . pr
@@ -412,7 +412,7 @@ impl<VM: VMBinding> ImmixSpace<VM> {
412
412
if self . common . needs_log_bit {
413
413
if let MetadataSpec :: OnSide ( side) = * VM :: VMObjectModel :: GLOBAL_LOG_BIT_SPEC {
414
414
for chunk in self . chunk_map . all_chunks ( ) {
415
- side. bzero_metadata ( chunk . start ( ) , Chunk :: BYTES ) ;
415
+ side. bzero_metadata ( chunk. start ( ) , Chunk :: BYTES ) ;
416
416
}
417
417
}
418
418
}
@@ -1184,24 +1184,28 @@ impl ClearVOBitsAfterPrepare {
1184
1184
1185
1185
mod inspector {
1186
1186
use super :: * ;
1187
- use crate :: util:: heap:: inspection:: { RegionInspector , SpaceInspector , list_child_regions } ;
1187
+ use crate :: util:: heap:: inspection:: { list_sub_regions , RegionInspector , SpaceInspector } ;
1188
1188
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 ( )
1191
1194
}
1192
1195
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
+ }
1204
1207
}
1208
+ vec ! [ ]
1205
1209
}
1206
1210
}
1207
1211
}
0 commit comments