diff --git a/include/xo/stringtable2/DString.hpp b/include/xo/stringtable2/DString.hpp index 75090f2..7d736a3 100644 --- a/include/xo/stringtable2/DString.hpp +++ b/include/xo/stringtable2/DString.hpp @@ -6,7 +6,7 @@ #pragma once #include -#include +//#include #include #include #include @@ -47,7 +47,7 @@ namespace xo { /** xo allocator **/ using AAllocator = xo::mm::AAllocator; /** garbage collector **/ - using ACollector = xo::mm::ACollector; + //using ACollector = xo::mm::ACollector; /** object visitor (garbage collector proxy) **/ using AGCObjectVisitor = xo::mm::AGCObjectVisitor; /** ppindentinfo for APrintable **/ @@ -245,10 +245,8 @@ namespace xo { /** @defgroup dstring-gcobject-methods gcobject facet methods **/ ///@{ - size_type shallow_size() const noexcept; - /** clone string, using memory from allocator @p mm **/ - DString * shallow_move(obj gc) noexcept; + DString * gco_shallow_move(obj gc) noexcept; /** fixup child pointers (trivial for DString, no children) * note: cref so we can use forward decl diff --git a/include/xo/stringtable2/DUniqueString.hpp b/include/xo/stringtable2/DUniqueString.hpp index 7e3502b..27a364e 100644 --- a/include/xo/stringtable2/DUniqueString.hpp +++ b/include/xo/stringtable2/DUniqueString.hpp @@ -90,7 +90,7 @@ namespace xo { ///@{ /** clone unique string, using memory from allocator @p mm. **/ - DUniqueString * shallow_move(obj gc) noexcept; + DUniqueString * gco_shallow_move(obj gc) noexcept; /** fixup child pointers (trivial for DUniqueString, no gc-owned children **/ void visit_gco_children(obj gc) noexcept; diff --git a/include/xo/stringtable2/string/IGCObject_DString.hpp b/include/xo/stringtable2/string/IGCObject_DString.hpp index 9248a89..f35b0a5 100644 --- a/include/xo/stringtable2/string/IGCObject_DString.hpp +++ b/include/xo/stringtable2/string/IGCObject_DString.hpp @@ -53,8 +53,9 @@ namespace xo { // const methods // non-const methods - /** move instance using collector **/ - static Opaque shallow_move(DString & self, obj gc) noexcept; + /** move instance using object visitor. +Arguably abusing the word 'visitor' here **/ + static Opaque gco_shallow_move(DString & 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 **/ diff --git a/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp b/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp index 283af3a..5771e05 100644 --- a/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp +++ b/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp @@ -53,8 +53,9 @@ namespace xo { // const methods // non-const methods - /** move instance using collector **/ - static Opaque shallow_move(DUniqueString & self, obj gc) noexcept; + /** move instance using object visitor. +Arguably abusing the word 'visitor' here **/ + static Opaque gco_shallow_move(DUniqueString & 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 **/ diff --git a/src/stringtable2/DString.cpp b/src/stringtable2/DString.cpp index 7bd16fb..1b9ce48 100644 --- a/src/stringtable2/DString.cpp +++ b/src/stringtable2/DString.cpp @@ -149,14 +149,8 @@ namespace xo { return this->size_; } - auto - DString::shallow_size() const noexcept -> size_type - { - return sizeof(DString) + capacity_; - } - DString * - DString::shallow_move(obj gc) noexcept + DString::gco_shallow_move(obj gc) noexcept { // note: not using gc.std_move_for() here // b/c DString flexible array means not move-constructible diff --git a/src/stringtable2/DUniqueString.cpp b/src/stringtable2/DUniqueString.cpp index 2660e5d..98371ad 100644 --- a/src/stringtable2/DUniqueString.cpp +++ b/src/stringtable2/DUniqueString.cpp @@ -82,7 +82,7 @@ namespace xo { } DUniqueString * - DUniqueString::shallow_move(obj gc) noexcept + DUniqueString::gco_shallow_move(obj gc) noexcept { // well-posed, but not expected to be used. // diff --git a/src/stringtable2/IGCObject_DString.cpp b/src/stringtable2/IGCObject_DString.cpp index f77077b..716c043 100644 --- a/src/stringtable2/IGCObject_DString.cpp +++ b/src/stringtable2/IGCObject_DString.cpp @@ -16,9 +16,9 @@ namespace xo { namespace scm { auto - IGCObject_DString::shallow_move(DString & self, obj gc) noexcept -> Opaque + IGCObject_DString::gco_shallow_move(DString & self, obj gc) noexcept -> Opaque { - return self.shallow_move(gc); + return self.gco_shallow_move(gc); } auto IGCObject_DString::visit_gco_children(DString & self, obj fn) noexcept -> void diff --git a/src/stringtable2/IGCObject_DUniqueString.cpp b/src/stringtable2/IGCObject_DUniqueString.cpp index a259148..e43fc8b 100644 --- a/src/stringtable2/IGCObject_DUniqueString.cpp +++ b/src/stringtable2/IGCObject_DUniqueString.cpp @@ -16,9 +16,9 @@ namespace xo { namespace scm { auto - IGCObject_DUniqueString::shallow_move(DUniqueString & self, obj gc) noexcept -> Opaque + IGCObject_DUniqueString::gco_shallow_move(DUniqueString & self, obj gc) noexcept -> Opaque { - return self.shallow_move(gc); + return self.gco_shallow_move(gc); } auto IGCObject_DUniqueString::visit_gco_children(DUniqueString & self, obj fn) noexcept -> void