From 5b2b252d6702f632d3fda060619c43142e092cef Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Thu, 12 Mar 2026 20:30:45 -0500 Subject: [PATCH] xo-gc: + remove_gc_root_poly() --- xo-facet/include/xo/facet/FacetRegistry.hpp | 2 ++ xo-gc/include/xo/gc/DX1Collector.hpp | 5 ++++- xo-procedure2/src/procedure2/CMakeLists.txt | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/xo-facet/include/xo/facet/FacetRegistry.hpp b/xo-facet/include/xo/facet/FacetRegistry.hpp index cbcf4979..88ae7ae1 100644 --- a/xo-facet/include/xo/facet/FacetRegistry.hpp +++ b/xo-facet/include/xo/facet/FacetRegistry.hpp @@ -142,7 +142,9 @@ namespace xo { if (!retval) throw std::runtime_error(tostr("FacetRegistry::try_variant failed", xtag("AFrom.tseq", typeseq::id()), + xtag("AFrom.tname", typerecd::recd().name()), xtag("ATo.tseq", typeseq::id()), + xtag("ATo.tname", typerecd::recd().name()), xtag("DRepr", from._typeseq()))); return retval; diff --git a/xo-gc/include/xo/gc/DX1Collector.hpp b/xo-gc/include/xo/gc/DX1Collector.hpp index 2ef7148a..539c77eb 100644 --- a/xo-gc/include/xo/gc/DX1Collector.hpp +++ b/xo-gc/include/xo/gc/DX1Collector.hpp @@ -155,9 +155,12 @@ namespace xo { **/ bool install_type(const AGCObject & meta) noexcept; - /** add GC root at @p root_addr, with type @p typeseq **/ + /** add GC root at @p *p_root **/ void add_gc_root_poly(obj * p_root) noexcept; + /** remove GC root at @p *p_root **/ + void remove_gc_root_poly(obj * p_root) noexcept; + // ----- collection ----- /** Request immediate collection. diff --git a/xo-procedure2/src/procedure2/CMakeLists.txt b/xo-procedure2/src/procedure2/CMakeLists.txt index 1a65a629..c10c878d 100644 --- a/xo-procedure2/src/procedure2/CMakeLists.txt +++ b/xo-procedure2/src/procedure2/CMakeLists.txt @@ -6,6 +6,7 @@ set(SELF_SRCS init_primitives.cpp procedure2_register_types.cpp procedure2_register_facets.cpp + PrimitiveRegistry.cpp DSimpleRcx.cpp IRuntimeContext_Any.cpp IRuntimeContext_DSimpleRcx.cpp