diff --git a/include/xo/gc/detail/ICollector_DX1Collector.hpp b/include/xo/gc/detail/ICollector_DX1Collector.hpp index 1db50e2..9e4c56a 100644 --- a/include/xo/gc/detail/ICollector_DX1Collector.hpp +++ b/include/xo/gc/detail/ICollector_DX1Collector.hpp @@ -47,6 +47,7 @@ namespace xo { static bool install_type(DX1Collector & d, const AGCObject & iface); static void add_gc_root_poly(DX1Collector & d, obj * p_root); + static void remove_gc_root_poly(DX1Collector & d, obj * p_root); static void request_gc(DX1Collector & d, generation upto); static void forward_inplace(DX1Collector & d, AGCObject * lhs_iface, void ** lhs_data); diff --git a/src/gc/DX1Collector.cpp b/src/gc/DX1Collector.cpp index 78d2734..25665d7 100644 --- a/src/gc/DX1Collector.cpp +++ b/src/gc/DX1Collector.cpp @@ -287,6 +287,14 @@ namespace xo { *(obj **)mem = p_root; } + void + DX1Collector::remove_gc_root_poly(obj * p_root) noexcept + { + // iterate over roots_, find p_root and drop it + + (void)p_root; + } + void DX1Collector::request_gc(generation upto) noexcept { diff --git a/src/gc/ICollector_DX1Collector.cpp b/src/gc/ICollector_DX1Collector.cpp index e30182d..781fcfe 100644 --- a/src/gc/ICollector_DX1Collector.cpp +++ b/src/gc/ICollector_DX1Collector.cpp @@ -67,6 +67,13 @@ namespace xo { d.add_gc_root_poly(p_root); } + void + ICollector_DX1Collector::remove_gc_root_poly(DX1Collector & d, + obj * p_root) + { + d.remove_gc_root_poly(p_root); + } + void ICollector_DX1Collector::request_gc(DX1Collector & d, generation upto)