diff --git a/include/xo/gc/X1Collector.hpp b/include/xo/gc/X1Collector.hpp index 3899984..c35f525 100644 --- a/include/xo/gc/X1Collector.hpp +++ b/include/xo/gc/X1Collector.hpp @@ -8,5 +8,6 @@ #include "DX1Collector.hpp" #include "detail/ICollector_DX1Collector.hpp" #include "detail/IAllocator_DX1Collector.hpp" +#include "detail/IGCObjectVisitor_DX1Collector.hpp" /* end X1Collector.hpp */ diff --git a/src/gc/DX1Collector.cpp b/src/gc/DX1Collector.cpp index d31c78c..a74b7f0 100644 --- a/src/gc/DX1Collector.cpp +++ b/src/gc/DX1Collector.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include #include "object_age.hpp" @@ -382,7 +383,7 @@ namespace xo { // Add run state so DX1Collector can recognize forward_inplace() // calls made for the purpose of checking child pointers. - auto self = this->ref(); + auto self = this->ref(); GCRunState saved_runstate = runstate_; { @@ -403,7 +404,7 @@ namespace xo { // - X1Collector::forward_inplace() -> _verify_aux() // - gco.forward_children(self); + gco.visit_gco_children(self); } diff --git a/src/gc/GCObjectStore.cpp b/src/gc/GCObjectStore.cpp index 4076fd9..ee900b5 100644 --- a/src/gc/GCObjectStore.cpp +++ b/src/gc/GCObjectStore.cpp @@ -498,7 +498,7 @@ namespace xo { log && log("disposition: not in from-space. Don't forward, but check children"); obj gco(lhs_iface, object_data); - gco.forward_children(gc->ref()); + gco.visit_gco_children(gc->ref()); return; } @@ -711,7 +711,7 @@ namespace xo { // Nested control reenters // X1Collector::forward_inplace() -> _verify_aux() // - gco.forward_children(gc->ref()); + gco.visit_gco_children(gc->ref()); } else { ++(p_verify_stats->n_no_iface_); continue; @@ -771,12 +771,12 @@ namespace xo { // we aren't moving from_src, it's not gc-owned. // However weare moving all its gc-owned children - auto gc_obj = gc->ref(); + auto gc_obj = gc->ref(); GCMoveCheckpoint gray_lo_v = this->snap_move_checkpoint(upto); - from_src.forward_children(gc_obj); + from_src.visit_gco_children(gc_obj); // For each generation g: // traverse objects newer than gray_lo_v[g], to make sure children @@ -1005,9 +1005,9 @@ namespace xo { assert(iface->_has_null_vptr() == false); - auto gc_gco = gc->ref(); + auto gc_gco = gc->ref(); - iface->forward_children(src, gc_gco); + iface->visit_gco_children(src, gc_gco); gray_lo_v[g] = ((std::byte *)src) + z;