From c5c9441c1e4e058316b2fef99d052e9a528c7fb2 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Mon, 24 Nov 2025 12:58:54 -0500 Subject: [PATCH] xo-alloc: IAlloc* i/face sufficient for Object._forward_children --- xo-alloc/include/xo/alloc/Forwarding1.hpp | 2 +- xo-alloc/include/xo/alloc/Object.hpp | 8 ++++---- xo-alloc/src/alloc/Forwarding1.cpp | 2 +- xo-alloc/src/alloc/Object.cpp | 2 +- xo-alloc/utest/Forwarding1.test.cpp | 2 +- xo-interpreter/include/xo/interpreter/GlobalEnv.hpp | 2 +- xo-interpreter/include/xo/interpreter/LocalEnv.hpp | 2 +- xo-interpreter/src/interpreter/GlobalEnv.cpp | 2 +- xo-interpreter/src/interpreter/LocalEnv.cpp | 2 +- xo-object/include/xo/object/Boolean.hpp | 2 +- xo-object/include/xo/object/Float.hpp | 2 +- xo-object/include/xo/object/Integer.hpp | 2 +- xo-object/include/xo/object/List.hpp | 2 +- xo-object/include/xo/object/String.hpp | 2 +- xo-object/src/object/Boolean.cpp | 2 +- xo-object/src/object/Float.cpp | 2 +- xo-object/src/object/Integer.cpp | 2 +- xo-object/src/object/List.cpp | 2 +- xo-object/src/object/String.cpp | 2 +- 19 files changed, 22 insertions(+), 22 deletions(-) diff --git a/xo-alloc/include/xo/alloc/Forwarding1.hpp b/xo-alloc/include/xo/alloc/Forwarding1.hpp index 88ca849a..8999849a 100644 --- a/xo-alloc/include/xo/alloc/Forwarding1.hpp +++ b/xo-alloc/include/xo/alloc/Forwarding1.hpp @@ -32,7 +32,7 @@ namespace xo { /** required by Object i/face, but never called on Forwarding1 **/ virtual Object * _shallow_copy(gc::IAlloc * mm) const final override; /** required by Object i/face, but never called on Forwarding1 **/ - virtual std::size_t _forward_children(gc::GC * mm) final override; + virtual std::size_t _forward_children(gc::IAlloc * mm) final override; private: /** the object that used to be located at this address (i.e. @c this) diff --git a/xo-alloc/include/xo/alloc/Object.hpp b/xo-alloc/include/xo/alloc/Object.hpp index f1d03225..f16dd6ac 100644 --- a/xo-alloc/include/xo/alloc/Object.hpp +++ b/xo-alloc/include/xo/alloc/Object.hpp @@ -119,17 +119,17 @@ namespace xo { * @p src. source object to be forwarded * @p gc. garbage collector */ - static Object * _forward(Object * src, gc::GC * gc); + static Object * _forward(Object * src, gc::IAlloc * gc); template - static void _forward_inplace(T ** src_addr, gc::GC * gc) { + static void _forward_inplace(T ** src_addr, gc::IAlloc * gc) { Object * fwd = _forward(*src_addr, gc); *src_addr = reinterpret_cast(fwd); } template - static void _forward_inplace(gp & src, gc::GC * gc) { + static void _forward_inplace(gp & src, gc::IAlloc * gc) { _forward_inplace(src.ptr_address(), gc); } @@ -243,7 +243,7 @@ namespace xo { * allocated by @ref _shallow_move * **/ - virtual std::size_t _forward_children(gc::GC * gc) = 0; + virtual std::size_t _forward_children(gc::IAlloc * gc) = 0; }; template diff --git a/xo-alloc/src/alloc/Forwarding1.cpp b/xo-alloc/src/alloc/Forwarding1.cpp index 2cc183d5..f94bf4f1 100644 --- a/xo-alloc/src/alloc/Forwarding1.cpp +++ b/xo-alloc/src/alloc/Forwarding1.cpp @@ -60,7 +60,7 @@ namespace xo { // LCOV_EXCL_START std::size_t - Forwarding1::_forward_children(gc::GC *) { + Forwarding1::_forward_children(gc::IAlloc *) { assert(false); return 0; } diff --git a/xo-alloc/src/alloc/Object.cpp b/xo-alloc/src/alloc/Object.cpp index 560f941b..dbb86ae2 100644 --- a/xo-alloc/src/alloc/Object.cpp +++ b/xo-alloc/src/alloc/Object.cpp @@ -24,7 +24,7 @@ namespace xo { Object::mm = nullptr; Object * - Object::_forward(Object * src, gc::GC * gc) + Object::_forward(Object * src, gc::IAlloc * gc) { if (!src) return src; diff --git a/xo-alloc/utest/Forwarding1.test.cpp b/xo-alloc/utest/Forwarding1.test.cpp index 2dcb5efe..19d9bf1e 100644 --- a/xo-alloc/utest/Forwarding1.test.cpp +++ b/xo-alloc/utest/Forwarding1.test.cpp @@ -34,7 +34,7 @@ namespace xo { virtual std::size_t _shallow_size() const final override { return sizeof(*this); } virtual Object * _shallow_copy(gc::IAlloc * mm) const final override { return new (Cpof(mm, this)) DummyObject(*this); } - virtual std::size_t _forward_children(gc::GC * gc) final override { return _shallow_size(); } + virtual std::size_t _forward_children(gc::IAlloc * gc) final override { return _shallow_size(); } private: std::array data_; diff --git a/xo-interpreter/include/xo/interpreter/GlobalEnv.hpp b/xo-interpreter/include/xo/interpreter/GlobalEnv.hpp index 54a7cbdd..e8998fea 100644 --- a/xo-interpreter/include/xo/interpreter/GlobalEnv.hpp +++ b/xo-interpreter/include/xo/interpreter/GlobalEnv.hpp @@ -35,7 +35,7 @@ namespace xo { virtual void display(std::ostream & os) const final override; virtual std::size_t _shallow_size() const final override; virtual Object * _shallow_copy(gc::IAlloc * mm) const final override; - virtual std::size_t _forward_children(gc::GC * /*gc*/) final override; + virtual std::size_t _forward_children(gc::IAlloc * /*gc*/) final override; private: GlobalEnv(const GlobalEnv & x); diff --git a/xo-interpreter/include/xo/interpreter/LocalEnv.hpp b/xo-interpreter/include/xo/interpreter/LocalEnv.hpp index d79a3355..8cd81b57 100644 --- a/xo-interpreter/include/xo/interpreter/LocalEnv.hpp +++ b/xo-interpreter/include/xo/interpreter/LocalEnv.hpp @@ -103,7 +103,7 @@ namespace xo { virtual void display(std::ostream & os) const final override; virtual std::size_t _shallow_size() const final override; virtual Object * _shallow_copy(gc::IAlloc * mm) const final override; - virtual std::size_t _forward_children(gc::GC * /*gc*/) final override; + virtual std::size_t _forward_children(gc::IAlloc * /*gc*/) final override; private: /** parent stack frame **/ diff --git a/xo-interpreter/src/interpreter/GlobalEnv.cpp b/xo-interpreter/src/interpreter/GlobalEnv.cpp index a45893bd..9bb9c32a 100644 --- a/xo-interpreter/src/interpreter/GlobalEnv.cpp +++ b/xo-interpreter/src/interpreter/GlobalEnv.cpp @@ -90,7 +90,7 @@ namespace xo { } std::size_t - GlobalEnv::_forward_children(gc::GC * gc) + GlobalEnv::_forward_children(gc::IAlloc * gc) { for (auto & ix : *slot_map_) { Object::_forward_inplace(ix.second, gc); diff --git a/xo-interpreter/src/interpreter/LocalEnv.cpp b/xo-interpreter/src/interpreter/LocalEnv.cpp index 65462157..c208c22b 100644 --- a/xo-interpreter/src/interpreter/LocalEnv.cpp +++ b/xo-interpreter/src/interpreter/LocalEnv.cpp @@ -121,7 +121,7 @@ namespace xo { } std::size_t - LocalEnv::_forward_children(gc::GC * gc) + LocalEnv::_forward_children(gc::IAlloc * gc) { static_assert(decltype(symtab_)::is_gc_ptr == false); diff --git a/xo-object/include/xo/object/Boolean.hpp b/xo-object/include/xo/object/Boolean.hpp index 8379b0f4..6bfa2585 100644 --- a/xo-object/include/xo/object/Boolean.hpp +++ b/xo-object/include/xo/object/Boolean.hpp @@ -25,7 +25,7 @@ namespace xo { virtual void display(std::ostream & os) const final override; virtual std::size_t _shallow_size() const final override; virtual Object * _shallow_copy(gc::IAlloc * gc) const final override; - virtual std::size_t _forward_children(gc::GC * gc) final override; + virtual std::size_t _forward_children(gc::IAlloc * gc) final override; private: explicit Boolean(bool x) : value_{x} {} diff --git a/xo-object/include/xo/object/Float.hpp b/xo-object/include/xo/object/Float.hpp index ce6fa3be..c206ede5 100644 --- a/xo-object/include/xo/object/Float.hpp +++ b/xo-object/include/xo/object/Float.hpp @@ -30,7 +30,7 @@ namespace xo { virtual void display(std::ostream & os) const final override; virtual std::size_t _shallow_size() const final override; virtual Object * _shallow_copy(gc::IAlloc * gc) const final override; - virtual std::size_t _forward_children(gc::GC * gc) final override; + virtual std::size_t _forward_children(gc::IAlloc * gc) final override; private: float_type value_ = 0.0; diff --git a/xo-object/include/xo/object/Integer.hpp b/xo-object/include/xo/object/Integer.hpp index 8f4a0c8f..73049a20 100644 --- a/xo-object/include/xo/object/Integer.hpp +++ b/xo-object/include/xo/object/Integer.hpp @@ -30,7 +30,7 @@ namespace xo { virtual void display(std::ostream & os) const final override; virtual std::size_t _shallow_size() const final override; virtual Object * _shallow_copy(gc::IAlloc * gc) const final override; - virtual std::size_t _forward_children(gc::GC * gc) final override; + virtual std::size_t _forward_children(gc::IAlloc * gc) final override; private: int_type value_ = 0; diff --git a/xo-object/include/xo/object/List.hpp b/xo-object/include/xo/object/List.hpp index c263484c..f3618f0a 100644 --- a/xo-object/include/xo/object/List.hpp +++ b/xo-object/include/xo/object/List.hpp @@ -59,7 +59,7 @@ namespace xo { virtual void display(std::ostream & os) const final override; virtual std::size_t _shallow_size() const final override; virtual Object * _shallow_copy(gc::IAlloc * gc) const final override; - virtual std::size_t _forward_children(gc::GC * gc) final override; + virtual std::size_t _forward_children(gc::IAlloc * gc) final override; private: List(gp head, gp rest); diff --git a/xo-object/include/xo/object/String.hpp b/xo-object/include/xo/object/String.hpp index c8fa712b..91975752 100644 --- a/xo-object/include/xo/object/String.hpp +++ b/xo-object/include/xo/object/String.hpp @@ -37,7 +37,7 @@ namespace xo { virtual void display(std::ostream & os) const final override; virtual std::size_t _shallow_size() const final override; virtual Object * _shallow_copy(gc::IAlloc * gc) const final override; - virtual std::size_t _forward_children(gc::GC * gc) final override; + virtual std::size_t _forward_children(gc::IAlloc * gc) final override; private: String(owner owner, std::size_t z, char * s); diff --git a/xo-object/src/object/Boolean.cpp b/xo-object/src/object/Boolean.cpp index 4b1c465c..20d874b0 100644 --- a/xo-object/src/object/Boolean.cpp +++ b/xo-object/src/object/Boolean.cpp @@ -75,7 +75,7 @@ namespace xo { // LCOV_EXCL_START std::size_t - Boolean::_forward_children(gc::GC *) + Boolean::_forward_children(gc::IAlloc *) { assert(false); return 0; diff --git a/xo-object/src/object/Float.cpp b/xo-object/src/object/Float.cpp index 0a34f451..57e0d995 100644 --- a/xo-object/src/object/Float.cpp +++ b/xo-object/src/object/Float.cpp @@ -48,7 +48,7 @@ namespace xo { } std::size_t - Float::_forward_children(gc::GC * /*gc*/) { + Float::_forward_children(gc::IAlloc * /*gc*/) { return Float::_shallow_size(); } } diff --git a/xo-object/src/object/Integer.cpp b/xo-object/src/object/Integer.cpp index d901569f..6a1abe87 100644 --- a/xo-object/src/object/Integer.cpp +++ b/xo-object/src/object/Integer.cpp @@ -49,7 +49,7 @@ namespace xo { } std::size_t - Integer::_forward_children(gc::GC * /*gc*/) { + Integer::_forward_children(gc::IAlloc * /*gc*/) { return Integer::_shallow_size(); } diff --git a/xo-object/src/object/List.cpp b/xo-object/src/object/List.cpp index 1c8c1d56..78ce7db2 100644 --- a/xo-object/src/object/List.cpp +++ b/xo-object/src/object/List.cpp @@ -110,7 +110,7 @@ namespace xo { } std::size_t - List::_forward_children(gc::GC * gc) + List::_forward_children(gc::IAlloc * gc) { Object::_forward_inplace(head_, gc); Object::_forward_inplace(rest_, gc); diff --git a/xo-object/src/object/String.cpp b/xo-object/src/object/String.cpp index d56d75e4..154efa97 100644 --- a/xo-object/src/object/String.cpp +++ b/xo-object/src/object/String.cpp @@ -152,7 +152,7 @@ namespace xo { } std::size_t - String::_forward_children(gc::GC *) + String::_forward_children(gc::IAlloc *) { return this->_shallow_size(); }