From 39ae54167f1364979d75ce105d66bf7276750658 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 5 Apr 2026 23:53:02 -0400 Subject: [PATCH] refactor: + narrower interface for gc pointer forwarding add AGCObjectVisitor, instead of requiring ACollector. --- include/xo/object2/DArray.hpp | 4 +++- include/xo/object2/DBoolean.hpp | 4 +++- include/xo/object2/DDictionary.hpp | 5 +++- include/xo/object2/DFloat.hpp | 4 +++- include/xo/object2/DInteger.hpp | 4 +++- include/xo/object2/DList.hpp | 3 ++- include/xo/object2/DRuntimeError.hpp | 4 ++-- include/xo/object2/array/IGCObject_DArray.hpp | 7 ++++-- .../xo/object2/boolean/IGCObject_DBoolean.hpp | 7 ++++-- .../dictionary/IGCObject_DDictionary.hpp | 7 ++++-- .../object2/error/IGCObject_DRuntimeError.hpp | 7 ++++-- include/xo/object2/list/IGCObject_DList.hpp | 7 ++++-- .../xo/object2/number/IGCObject_DFloat.hpp | 7 ++++-- .../xo/object2/number/IGCObject_DInteger.hpp | 7 ++++-- src/object2/DArray.cpp | 6 ++--- src/object2/DBoolean.cpp | 4 ++-- src/object2/DDictionary.cpp | 7 +++--- src/object2/DFloat.cpp | 4 ++-- src/object2/DInteger.cpp | 4 ++-- src/object2/DList.cpp | 6 ++--- src/object2/DRuntimeError.cpp | 24 ++++++++----------- src/object2/IGCObject_DArray.cpp | 4 ++-- src/object2/IGCObject_DBoolean.cpp | 4 ++-- src/object2/IGCObject_DDictionary.cpp | 4 ++-- src/object2/IGCObject_DFloat.cpp | 4 ++-- src/object2/IGCObject_DInteger.cpp | 4 ++-- src/object2/IGCObject_DList.cpp | 4 ++-- src/object2/IGCObject_DRuntimeError.cpp | 4 ++-- 28 files changed, 94 insertions(+), 66 deletions(-) diff --git a/include/xo/object2/DArray.hpp b/include/xo/object2/DArray.hpp index ac44c32..71c7f44 100644 --- a/include/xo/object2/DArray.hpp +++ b/include/xo/object2/DArray.hpp @@ -36,6 +36,8 @@ namespace xo { using ACollector = xo::mm::ACollector; /** gc-aware object facet **/ using AGCObject = xo::mm::AGCObject; + /** gc-centric object visitor **/ + using AGCObjectVisitor = xo::mm::AGCObjectVisitor; /** pretty-printer state for APrintable **/ using ppindentinfo = xo::print::ppindentinfo; @@ -148,7 +150,7 @@ namespace xo { /** move to new address, mandated by @p gc **/ DArray * shallow_move(obj gc) noexcept; /** forward elements to @p gc to-space; replace originals with forarding pointers **/ - void forward_children(obj gc) noexcept; + void visit_gco_children(obj gc) noexcept; ///@} private: diff --git a/include/xo/object2/DBoolean.hpp b/include/xo/object2/DBoolean.hpp index f6374e3..1637bc7 100644 --- a/include/xo/object2/DBoolean.hpp +++ b/include/xo/object2/DBoolean.hpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -16,6 +17,7 @@ namespace xo { struct DBoolean { using AAllocator = xo::mm::AAllocator; using ACollector = xo::mm::ACollector; + using AGCObjectVisitor = xo::mm::AGCObjectVisitor; using AGCObject = xo::mm::AGCObject; using ppindentinfo = xo::print::ppindentinfo; using value_type = long; @@ -38,7 +40,7 @@ namespace xo { // GCObject facet DBoolean * shallow_move(obj gc) noexcept; - void forward_children(obj gc) noexcept; + void visit_gco_children(obj gc) noexcept; private: /** boxed boolean value **/ diff --git a/include/xo/object2/DDictionary.hpp b/include/xo/object2/DDictionary.hpp index 8183a67..9ab75be 100644 --- a/include/xo/object2/DDictionary.hpp +++ b/include/xo/object2/DDictionary.hpp @@ -8,6 +8,7 @@ #include "DArray.hpp" #include "DString.hpp" #include +#include #include #include #include @@ -35,6 +36,8 @@ namespace xo { using AAllocator = xo::mm::AAllocator; /** garbage collector facet **/ using ACollector = xo::mm::ACollector; + /** gc-centric object visitor **/ + using AGCObjectVisitor = xo::mm::AGCObjectVisitor; /** gc-aware object facet **/ using AGCObject = xo::mm::AGCObject; /** pretty-printer state for APrintable **/ @@ -203,7 +206,7 @@ namespace xo { /** return shallow copy of this array, using memory from @p mm **/ DDictionary * shallow_move(obj gc) noexcept; /** forward elements to @p gc to-space; replace originals with forwarding pointers **/ - void forward_children(obj gc) noexcept; + void visit_gco_children(obj gc) noexcept; ///@} private: diff --git a/include/xo/object2/DFloat.hpp b/include/xo/object2/DFloat.hpp index 50b0828..9532204 100644 --- a/include/xo/object2/DFloat.hpp +++ b/include/xo/object2/DFloat.hpp @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -15,6 +16,7 @@ namespace xo { struct DFloat { using AAllocator = xo::mm::AAllocator; using ACollector = xo::mm::ACollector; + using AGCObjectVisitor = xo::mm::AGCObjectVisitor; using ppindentinfo = xo::print::ppindentinfo; using value_type = double; @@ -35,7 +37,7 @@ namespace xo { // GCObject facet DFloat * shallow_move(obj gc) noexcept; - void forward_children(obj gc) noexcept; + void visit_gco_children(obj gc) noexcept; private: diff --git a/include/xo/object2/DInteger.hpp b/include/xo/object2/DInteger.hpp index 4105d92..4b0552b 100644 --- a/include/xo/object2/DInteger.hpp +++ b/include/xo/object2/DInteger.hpp @@ -6,6 +6,7 @@ #pragma once #include +#include #include #include #include @@ -16,6 +17,7 @@ namespace xo { struct DInteger { using AAllocator = xo::mm::AAllocator; using ACollector = xo::mm::ACollector; + using AGCObjectVisitor = xo::mm::AGCObjectVisitor; using AGCObject = xo::mm::AGCObject; using ppindentinfo = xo::print::ppindentinfo; using value_type = long; @@ -40,7 +42,7 @@ namespace xo { // GCObject facet DInteger * shallow_move(obj gc) noexcept; - void forward_children(obj gc) noexcept; + void visit_gco_children(obj gc) noexcept; private: /** boxed integer value **/ diff --git a/include/xo/object2/DList.hpp b/include/xo/object2/DList.hpp index 4c37045..e694acb 100644 --- a/include/xo/object2/DList.hpp +++ b/include/xo/object2/DList.hpp @@ -20,6 +20,7 @@ namespace xo { using AGCObject = xo::mm::AGCObject; using AAllocator = xo::mm::AAllocator; using ACollector = xo::mm::ACollector; + using AGCObjectVisitor = xo::mm::AGCObjectVisitor; using ppindentinfo = xo::print::ppindentinfo; public: @@ -70,7 +71,7 @@ namespace xo { /** @defgroup xo-scm-list-gcobject-facet gcobject facet **/ ///@{ DList * shallow_move(obj gc) noexcept; - void forward_children(obj gc) noexcept; + void visit_gco_children(obj gc) noexcept; ///@} /** first member of list **/ diff --git a/include/xo/object2/DRuntimeError.hpp b/include/xo/object2/DRuntimeError.hpp index 2ee9306..782185b 100644 --- a/include/xo/object2/DRuntimeError.hpp +++ b/include/xo/object2/DRuntimeError.hpp @@ -18,6 +18,7 @@ namespace xo { public: using AGCObject = xo::mm::AGCObject; using ACollector = xo::mm::ACollector; + using AGCObjectVisitor = xo::mm::AGCObjectVisitor; using AAllocator = xo::mm::AAllocator; using ppindentinfo = xo::print::ppindentinfo; @@ -49,9 +50,8 @@ namespace xo { /** @defgroup scm-runtimeerror-gcobject-facet gcobject facet **/ ///@{ - std::size_t shallow_size() const noexcept; DRuntimeError * shallow_move(obj gc) noexcept; - std::size_t forward_children(obj gc) noexcept; + void visit_gco_children(obj gc) noexcept; ///@} diff --git a/include/xo/object2/array/IGCObject_DArray.hpp b/include/xo/object2/array/IGCObject_DArray.hpp index 04669db..5b3db88 100644 --- a/include/xo/object2/array/IGCObject_DArray.hpp +++ b/include/xo/object2/array/IGCObject_DArray.hpp @@ -42,6 +42,7 @@ namespace xo { using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; using ACollector = xo::mm::AGCObject::ACollector; + using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using Copaque = xo::mm::AGCObject::Copaque; using Opaque = xo::mm::AGCObject::Opaque; ///@} @@ -52,8 +53,10 @@ namespace xo { // non-const methods /** move instance using allocator **/ static Opaque shallow_move(DArray & self, obj gc) noexcept; - /** during GC: forward immdiate children **/ - static void forward_children(DArray & self, obj gc) noexcept; + /** Invoke fn.visit_child(iface,data) for each child GCObject pointer. +Context: provides address of data pointer so it can be updated in place +when @p fn invokes garbage collector reentry point **/ + static void visit_gco_children(DArray & self, obj fn) noexcept; ///@} }; diff --git a/include/xo/object2/boolean/IGCObject_DBoolean.hpp b/include/xo/object2/boolean/IGCObject_DBoolean.hpp index 15ba4f7..e13bb51 100644 --- a/include/xo/object2/boolean/IGCObject_DBoolean.hpp +++ b/include/xo/object2/boolean/IGCObject_DBoolean.hpp @@ -42,6 +42,7 @@ namespace xo { using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; using ACollector = xo::mm::AGCObject::ACollector; + using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using Copaque = xo::mm::AGCObject::Copaque; using Opaque = xo::mm::AGCObject::Opaque; ///@} @@ -52,8 +53,10 @@ namespace xo { // non-const methods /** move instance using allocator **/ static Opaque shallow_move(DBoolean & self, obj gc) noexcept; - /** during GC: forward immdiate children **/ - static void forward_children(DBoolean & self, obj gc) noexcept; + /** Invoke fn.visit_child(iface,data) for each child GCObject pointer. +Context: provides address of data pointer so it can be updated in place +when @p fn invokes garbage collector reentry point **/ + static void visit_gco_children(DBoolean & self, obj fn) noexcept; ///@} }; diff --git a/include/xo/object2/dictionary/IGCObject_DDictionary.hpp b/include/xo/object2/dictionary/IGCObject_DDictionary.hpp index 173f7a4..79197a8 100644 --- a/include/xo/object2/dictionary/IGCObject_DDictionary.hpp +++ b/include/xo/object2/dictionary/IGCObject_DDictionary.hpp @@ -42,6 +42,7 @@ namespace xo { using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; using ACollector = xo::mm::AGCObject::ACollector; + using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using Copaque = xo::mm::AGCObject::Copaque; using Opaque = xo::mm::AGCObject::Opaque; ///@} @@ -52,8 +53,10 @@ namespace xo { // non-const methods /** move instance using allocator **/ static Opaque shallow_move(DDictionary & self, obj gc) noexcept; - /** during GC: forward immdiate children **/ - static void forward_children(DDictionary & self, obj gc) noexcept; + /** Invoke fn.visit_child(iface,data) for each child GCObject pointer. +Context: provides address of data pointer so it can be updated in place +when @p fn invokes garbage collector reentry point **/ + static void visit_gco_children(DDictionary & self, obj fn) noexcept; ///@} }; diff --git a/include/xo/object2/error/IGCObject_DRuntimeError.hpp b/include/xo/object2/error/IGCObject_DRuntimeError.hpp index 25e6e24..fe44712 100644 --- a/include/xo/object2/error/IGCObject_DRuntimeError.hpp +++ b/include/xo/object2/error/IGCObject_DRuntimeError.hpp @@ -42,6 +42,7 @@ namespace xo { using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; using ACollector = xo::mm::AGCObject::ACollector; + using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using Copaque = xo::mm::AGCObject::Copaque; using Opaque = xo::mm::AGCObject::Opaque; ///@} @@ -52,8 +53,10 @@ namespace xo { // non-const methods /** move instance using allocator **/ static Opaque shallow_move(DRuntimeError & self, obj gc) noexcept; - /** during GC: forward immdiate children **/ - static void forward_children(DRuntimeError & self, obj gc) noexcept; + /** Invoke fn.visit_child(iface,data) for each child GCObject pointer. +Context: provides address of data pointer so it can be updated in place +when @p fn invokes garbage collector reentry point **/ + static void visit_gco_children(DRuntimeError & self, obj fn) noexcept; ///@} }; diff --git a/include/xo/object2/list/IGCObject_DList.hpp b/include/xo/object2/list/IGCObject_DList.hpp index 6132041..8ef9e1c 100644 --- a/include/xo/object2/list/IGCObject_DList.hpp +++ b/include/xo/object2/list/IGCObject_DList.hpp @@ -42,6 +42,7 @@ namespace xo { using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; using ACollector = xo::mm::AGCObject::ACollector; + using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using Copaque = xo::mm::AGCObject::Copaque; using Opaque = xo::mm::AGCObject::Opaque; ///@} @@ -52,8 +53,10 @@ namespace xo { // non-const methods /** move instance using allocator **/ static Opaque shallow_move(DList & self, obj gc) noexcept; - /** during GC: forward immdiate children **/ - static void forward_children(DList & self, obj gc) noexcept; + /** Invoke fn.visit_child(iface,data) for each child GCObject pointer. +Context: provides address of data pointer so it can be updated in place +when @p fn invokes garbage collector reentry point **/ + static void visit_gco_children(DList & self, obj fn) noexcept; ///@} }; diff --git a/include/xo/object2/number/IGCObject_DFloat.hpp b/include/xo/object2/number/IGCObject_DFloat.hpp index accf1ea..384a8de 100644 --- a/include/xo/object2/number/IGCObject_DFloat.hpp +++ b/include/xo/object2/number/IGCObject_DFloat.hpp @@ -43,6 +43,7 @@ namespace xo { using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; using ACollector = xo::mm::AGCObject::ACollector; + using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using Copaque = xo::mm::AGCObject::Copaque; using Opaque = xo::mm::AGCObject::Opaque; ///@} @@ -53,8 +54,10 @@ namespace xo { // non-const methods /** move instance using allocator **/ static Opaque shallow_move(DFloat & self, obj gc) noexcept; - /** during GC: forward immdiate children **/ - static void forward_children(DFloat & self, obj gc) noexcept; + /** Invoke fn.visit_child(iface,data) for each child GCObject pointer. +Context: provides address of data pointer so it can be updated in place +when @p fn invokes garbage collector reentry point **/ + static void visit_gco_children(DFloat & self, obj fn) noexcept; ///@} }; diff --git a/include/xo/object2/number/IGCObject_DInteger.hpp b/include/xo/object2/number/IGCObject_DInteger.hpp index 8b418e1..92ddf1e 100644 --- a/include/xo/object2/number/IGCObject_DInteger.hpp +++ b/include/xo/object2/number/IGCObject_DInteger.hpp @@ -42,6 +42,7 @@ namespace xo { using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; using ACollector = xo::mm::AGCObject::ACollector; + using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using Copaque = xo::mm::AGCObject::Copaque; using Opaque = xo::mm::AGCObject::Opaque; ///@} @@ -52,8 +53,10 @@ namespace xo { // non-const methods /** move instance using allocator **/ static Opaque shallow_move(DInteger & self, obj gc) noexcept; - /** during GC: forward immdiate children **/ - static void forward_children(DInteger & self, obj gc) noexcept; + /** Invoke fn.visit_child(iface,data) for each child GCObject pointer. +Context: provides address of data pointer so it can be updated in place +when @p fn invokes garbage collector reentry point **/ + static void visit_gco_children(DInteger & self, obj fn) noexcept; ///@} }; diff --git a/src/object2/DArray.cpp b/src/object2/DArray.cpp index 4be2ff6..a365810 100644 --- a/src/object2/DArray.cpp +++ b/src/object2/DArray.cpp @@ -198,16 +198,16 @@ namespace xo { } void - DArray::forward_children(obj gc) noexcept + DArray::visit_gco_children(obj gc) noexcept { scope log(XO_DEBUG(false)); for (size_type i = 0; i < size_; ++i) { - log && log("DArray::forward_children (loop)", xtag("i", i), xtag("z", size_)); + log && log("DArray::visit_gco_children (loop)", xtag("i", i), xtag("z", size_)); obj & elt = elts_[i]; - gc.forward_inplace(&elt); + gc.visit_child(&elt); } } diff --git a/src/object2/DBoolean.cpp b/src/object2/DBoolean.cpp index 2a196d5..d2c2b7c 100644 --- a/src/object2/DBoolean.cpp +++ b/src/object2/DBoolean.cpp @@ -36,9 +36,9 @@ namespace xo { } void - DBoolean::forward_children(obj) noexcept + DBoolean::visit_gco_children(obj) noexcept { - // no-op + // no-op. childless } diff --git a/src/object2/DDictionary.cpp b/src/object2/DDictionary.cpp index bd9ad11..63e0e9e 100644 --- a/src/object2/DDictionary.cpp +++ b/src/object2/DDictionary.cpp @@ -274,11 +274,10 @@ namespace xo { } void - DDictionary::forward_children(obj gc) noexcept + DDictionary::visit_gco_children(obj gc) noexcept { - - gc.forward_inplace(&keys_); - gc.forward_inplace(&values_); + gc.visit_child(&keys_); + gc.visit_child(&values_); } } /*namespace scm*/ diff --git a/src/object2/DFloat.cpp b/src/object2/DFloat.cpp index 32f3438..3515dcf 100644 --- a/src/object2/DFloat.cpp +++ b/src/object2/DFloat.cpp @@ -34,9 +34,9 @@ namespace xo { } void - DFloat::forward_children(obj) noexcept + DFloat::visit_gco_children(obj) noexcept { - // noop + // noop -- childless! } } /*namespace scm*/ diff --git a/src/object2/DInteger.cpp b/src/object2/DInteger.cpp index 2b0a4c0..b73391c 100644 --- a/src/object2/DInteger.cpp +++ b/src/object2/DInteger.cpp @@ -34,9 +34,9 @@ namespace xo { } void - DInteger::forward_children(obj) noexcept + DInteger::visit_gco_children(obj) noexcept { - // no-op + // no-op. childless } } /*namespace scm*/ diff --git a/src/object2/DList.cpp b/src/object2/DList.cpp index fbba2e3..5670118 100644 --- a/src/object2/DList.cpp +++ b/src/object2/DList.cpp @@ -185,12 +185,12 @@ namespace xo { } void - DList::forward_children(obj gc) noexcept + DList::visit_gco_children(obj gc) noexcept { //scope log(XO_DEBUG(true)); - gc.forward_inplace(&head_); - gc.forward_inplace(&rest_); + gc.visit_child(&head_); + gc.visit_child(&rest_); } } /*namespace scm*/ } /*namespace xo*/ diff --git a/src/object2/DRuntimeError.cpp b/src/object2/DRuntimeError.cpp index 469479c..d46dcb2 100644 --- a/src/object2/DRuntimeError.cpp +++ b/src/object2/DRuntimeError.cpp @@ -52,32 +52,28 @@ namespace xo { // ----- GCObject facet ----- - std::size_t - DRuntimeError::shallow_size() const noexcept - { - return sizeof(DRuntimeError); - } - DRuntimeError * DRuntimeError::shallow_move(obj gc) noexcept { return gc.std_move_for(this); } - std::size_t - DRuntimeError::forward_children(obj gc) noexcept + void + DRuntimeError::visit_gco_children(obj gc) noexcept { { - auto iface = xo::facet::impl_for(); - gc.forward_inplace(&iface, (void **)(&src_function_)); + gc.visit_child(&src_function_); + + //auto iface = xo::facet::impl_for(); + //gc.forward_inplace(&iface, (void **)(&src_function_)); } { - auto iface = xo::facet::impl_for(); - gc.forward_inplace(&iface, (void **)(&error_descr_)); - } + gc.visit_child(&error_descr_); - return this->shallow_size(); + //auto iface = xo::facet::impl_for(); + //gc.forward_inplace(&iface, (void **)(&error_descr_)); + } } // ----- Printable facet ----- diff --git a/src/object2/IGCObject_DArray.cpp b/src/object2/IGCObject_DArray.cpp index 84c4768..38a3197 100644 --- a/src/object2/IGCObject_DArray.cpp +++ b/src/object2/IGCObject_DArray.cpp @@ -21,9 +21,9 @@ namespace xo { return self.shallow_move(gc); } auto - IGCObject_DArray::forward_children(DArray & self, obj gc) noexcept -> void + IGCObject_DArray::visit_gco_children(DArray & self, obj fn) noexcept -> void { - self.forward_children(gc); + self.visit_gco_children(fn); } } /*namespace scm*/ diff --git a/src/object2/IGCObject_DBoolean.cpp b/src/object2/IGCObject_DBoolean.cpp index 0c1f3a8..d76460d 100644 --- a/src/object2/IGCObject_DBoolean.cpp +++ b/src/object2/IGCObject_DBoolean.cpp @@ -21,9 +21,9 @@ namespace xo { return self.shallow_move(gc); } auto - IGCObject_DBoolean::forward_children(DBoolean & self, obj gc) noexcept -> void + IGCObject_DBoolean::visit_gco_children(DBoolean & self, obj fn) noexcept -> void { - self.forward_children(gc); + self.visit_gco_children(fn); } } /*namespace scm*/ diff --git a/src/object2/IGCObject_DDictionary.cpp b/src/object2/IGCObject_DDictionary.cpp index e8c890a..cd011b1 100644 --- a/src/object2/IGCObject_DDictionary.cpp +++ b/src/object2/IGCObject_DDictionary.cpp @@ -21,9 +21,9 @@ namespace xo { return self.shallow_move(gc); } auto - IGCObject_DDictionary::forward_children(DDictionary & self, obj gc) noexcept -> void + IGCObject_DDictionary::visit_gco_children(DDictionary & self, obj fn) noexcept -> void { - self.forward_children(gc); + self.visit_gco_children(fn); } } /*namespace scm*/ diff --git a/src/object2/IGCObject_DFloat.cpp b/src/object2/IGCObject_DFloat.cpp index 4908db8..ab58f84 100644 --- a/src/object2/IGCObject_DFloat.cpp +++ b/src/object2/IGCObject_DFloat.cpp @@ -21,9 +21,9 @@ namespace xo { return self.shallow_move(gc); } auto - IGCObject_DFloat::forward_children(DFloat & self, obj gc) noexcept -> void + IGCObject_DFloat::visit_gco_children(DFloat & self, obj fn) noexcept -> void { - self.forward_children(gc); + self.visit_gco_children(fn); } } /*namespace scm*/ diff --git a/src/object2/IGCObject_DInteger.cpp b/src/object2/IGCObject_DInteger.cpp index 9994447..13ea837 100644 --- a/src/object2/IGCObject_DInteger.cpp +++ b/src/object2/IGCObject_DInteger.cpp @@ -21,9 +21,9 @@ namespace xo { return self.shallow_move(gc); } auto - IGCObject_DInteger::forward_children(DInteger & self, obj gc) noexcept -> void + IGCObject_DInteger::visit_gco_children(DInteger & self, obj fn) noexcept -> void { - self.forward_children(gc); + self.visit_gco_children(fn); } } /*namespace scm*/ diff --git a/src/object2/IGCObject_DList.cpp b/src/object2/IGCObject_DList.cpp index 138f707..680d1aa 100644 --- a/src/object2/IGCObject_DList.cpp +++ b/src/object2/IGCObject_DList.cpp @@ -21,9 +21,9 @@ namespace xo { return self.shallow_move(gc); } auto - IGCObject_DList::forward_children(DList & self, obj gc) noexcept -> void + IGCObject_DList::visit_gco_children(DList & self, obj fn) noexcept -> void { - self.forward_children(gc); + self.visit_gco_children(fn); } } /*namespace scm*/ diff --git a/src/object2/IGCObject_DRuntimeError.cpp b/src/object2/IGCObject_DRuntimeError.cpp index fad4684..7cce971 100644 --- a/src/object2/IGCObject_DRuntimeError.cpp +++ b/src/object2/IGCObject_DRuntimeError.cpp @@ -21,9 +21,9 @@ namespace xo { return self.shallow_move(gc); } auto - IGCObject_DRuntimeError::forward_children(DRuntimeError & self, obj gc) noexcept -> void + IGCObject_DRuntimeError::visit_gco_children(DRuntimeError & self, obj fn) noexcept -> void { - self.forward_children(gc); + self.visit_gco_children(fn); } } /*namespace scm*/