From 87af7348141f7b9066d57db420eff45f5dc487e6 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Thu, 12 Mar 2026 20:26:08 -0500 Subject: [PATCH] xo-interpreter2 stack: refactor + bugfix operator expr --- include/xo/gc/detail/ICollector_DX1Collector.hpp | 1 + src/gc/DX1Collector.cpp | 8 ++++++++ src/gc/ICollector_DX1Collector.cpp | 7 +++++++ 3 files changed, 16 insertions(+) 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)