xo-gc stack: refactor: + alloc_info() method

replicated form AAllocator facet
This commit is contained in:
Roland Conybeare 2026-04-06 17:15:30 -04:00
commit fd548d6816
4 changed files with 12 additions and 3 deletions

View file

@ -227,7 +227,7 @@ namespace xo {
bool is_forwarding_header(header_type hdr) const noexcept;
/** Retreive bookkeeping info for allocation at @p mem. **/
AllocInfo alloc_info(value_type mem) const noexcept;
AllocInfo alloc_info(void * mem) const noexcept;
/** true iff type with id @p tseq has known metadata
* (i.e. has appeared in preceding call to install_type

View file

@ -45,6 +45,9 @@ namespace xo {
/** @defgroup mm-gcobjectvisitor-dx1collector-methods **/
///@{
// const methods
/** allocation metadata for gc-aware data at address @p gco.
@p gco must be the result of a call to collector's alloc() function **/
static AllocInfo alloc_info(const DX1Collector & self, void * addr);
// non-const methods
/** allocate copy of source object at address @p src.

View file

@ -350,8 +350,8 @@ namespace xo {
}
AllocInfo
DX1Collector::alloc_info(value_type mem) const noexcept {
return gco_store_.alloc_info(mem);
DX1Collector::alloc_info(void * mem) const noexcept {
return gco_store_.alloc_info((std::byte *)(mem));
}
bool

View file

@ -15,6 +15,12 @@
namespace xo {
namespace mm {
auto
IGCObjectVisitor_DX1Collector::alloc_info(const DX1Collector & self, void * addr) -> AllocInfo
{
return self.alloc_info(addr);
}
auto
IGCObjectVisitor_DX1Collector::alloc_copy(DX1Collector & self, std::byte * src) -> void *
{