refactor: use GCObjectVisitor api w/ gco_shallow_move
This commit is contained in:
parent
0bc037f1ea
commit
31df51ac8e
8 changed files with 16 additions and 14 deletions
|
|
@ -164,7 +164,7 @@ namespace xo {
|
|||
using token_type = Token;
|
||||
using ArenaHashMapConfig = xo::map::ArenaHashMapConfig;
|
||||
using ArenaConfig = xo::mm::ArenaConfig;
|
||||
using ACollector = xo::mm::ACollector;
|
||||
//using ACollector = xo::mm::ACollector;
|
||||
using AGCObject = xo::mm::AGCObject;
|
||||
using AGCObjectVisitor = xo::mm::AGCObjectVisitor;
|
||||
using AAllocator = xo::mm::AAllocator;
|
||||
|
|
@ -295,7 +295,7 @@ namespace xo {
|
|||
///@{
|
||||
|
||||
/** not implemented (SchematikaParser not designed to be copyable) **/
|
||||
DSchematikaParser * shallow_move(obj<ACollector> gc) noexcept;
|
||||
DSchematikaParser * gco_shallow_move(obj<AGCObjectVisitor> gc) noexcept;
|
||||
/** forward gc-aware children **/
|
||||
void visit_gco_children(obj<AGCObjectVisitor> gc) noexcept;
|
||||
|
||||
|
|
|
|||
|
|
@ -53,8 +53,9 @@ namespace xo {
|
|||
// const methods
|
||||
|
||||
// non-const methods
|
||||
/** move instance using collector **/
|
||||
static Opaque shallow_move(DSchematikaParser & self, obj<ACollector> gc) noexcept;
|
||||
/** move instance using object visitor.
|
||||
Arguably abusing the word 'visitor' here **/
|
||||
static Opaque gco_shallow_move(DSchematikaParser & self, obj<AGCObjectVisitor> 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 **/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue