@@ -603,33 +603,35 @@ impl<VM: VMBinding> BasePlan<VM> {
603603
604604 pub fn trace_object < Q : ObjectQueue > (
605605 & self ,
606- _queue : & mut Q ,
607- _object : ObjectReference ,
606+ queue : & mut Q ,
607+ object : ObjectReference ,
608+ worker : & mut GCWorker < VM > ,
608609 ) -> ObjectReference {
609610 #[ cfg( feature = "code_space" ) ]
610- if self . code_space . in_space ( _object ) {
611+ if self . code_space . in_space ( object ) {
611612 trace ! ( "trace_object: object in code space" ) ;
612- return self . code_space . trace_object :: < Q > ( _queue , _object ) ;
613+ return self . code_space . trace_object :: < Q > ( queue , object ) ;
613614 }
614615
615616 #[ cfg( feature = "code_space" ) ]
616- if self . code_lo_space . in_space ( _object ) {
617+ if self . code_lo_space . in_space ( object ) {
617618 trace ! ( "trace_object: object in large code space" ) ;
618- return self . code_lo_space . trace_object :: < Q > ( _queue , _object ) ;
619+ return self . code_lo_space . trace_object :: < Q > ( queue , object ) ;
619620 }
620621
621622 #[ cfg( feature = "ro_space" ) ]
622- if self . ro_space . in_space ( _object ) {
623+ if self . ro_space . in_space ( object ) {
623624 trace ! ( "trace_object: object in ro_space space" ) ;
624- return self . ro_space . trace_object ( _queue , _object ) ;
625+ return self . ro_space . trace_object ( queue , object ) ;
625626 }
626627
627628 #[ cfg( feature = "vm_space" ) ]
628- if self . vm_space . in_space ( _object ) {
629+ if self . vm_space . in_space ( object ) {
629630 trace ! ( "trace_object: object in boot space" ) ;
630- return self . vm_space . trace_object ( _queue , _object ) ;
631+ return self . vm_space . trace_object ( queue , object ) ;
631632 }
632- panic ! ( "No special case for space in trace_object({:?})" , _object) ;
633+
634+ VM :: VMActivePlan :: vm_trace_object :: < Q > ( queue, object, worker)
633635 }
634636
635637 pub fn prepare ( & mut self , _tls : VMWorkerThread , _full_heap : bool ) {
@@ -907,6 +909,7 @@ impl<VM: VMBinding> CommonPlan<VM> {
907909 & self ,
908910 queue : & mut Q ,
909911 object : ObjectReference ,
912+ worker : & mut GCWorker < VM > ,
910913 ) -> ObjectReference {
911914 if self . immortal . in_space ( object) {
912915 trace ! ( "trace_object: object in immortal space" ) ;
@@ -916,7 +919,7 @@ impl<VM: VMBinding> CommonPlan<VM> {
916919 trace ! ( "trace_object: object in los" ) ;
917920 return self . los . trace_object ( queue, object) ;
918921 }
919- self . base . trace_object :: < Q > ( queue, object)
922+ self . base . trace_object :: < Q > ( queue, object, worker )
920923 }
921924
922925 pub fn prepare ( & mut self , tls : VMWorkerThread , full_heap : bool ) {
0 commit comments