xo-gc: streamline: drop .visit_child methods

no longer needed, thanks to DGCObjectStoreVisitor
This commit is contained in:
Roland Conybeare 2026-04-12 15:00:48 -04:00
commit 134f5614a3
5 changed files with 29 additions and 87 deletions

View file

@ -274,14 +274,6 @@ namespace xo {
/** Execute gc immediately, for all generations < @p upto **/
void execute_gc(Generation upto) noexcept;
/** Supports GCObjectVisitor facet.
* During gc phase (@p reason is 'forward')
* 1. evacuate object at @p *lhs_data to to-space.
* 2. replace @p *lhs_data with forwarding pointer
* to new location.
**/
void visit_child(VisitReason reason, AGCObject * lhs_iface, void ** lhs_data);
// ----- allocation -----
/** simple allocation. allocate @p z bytes of memory

View file

@ -169,37 +169,6 @@ namespace xo {
void * from_src,
Generation upto);
/** Target for GCObjectVisitor facet
* During gc phase (@p reason is 'forward')
* 1. evacuate object at @p *lhs_data to to-space.
* 2. replace @p *lhs_data with forwarding pointer
* to new location.
**/
void visit_child_aux(VisitReason reason,
AGCObject * lhs_iface,
void ** lhs_data,
Generation upto);
/** Evacuate object at @p *lhs_data to to-space, during collection phase
* acting on generations g in [0 ,.., upto).
* Need @p gc to pass to invoke AGCObject methods shallow_copy() and
* forward_children()
*
* Replace original with forwarding pointer to new location
**/
void forward_inplace_aux(obj<AGCObjectVisitor> gc,
AGCObject * lhs_iface,
void ** lhs_data,
Generation upto);
/** categorize fop {@p lhs_iface, @p lhs_data}
* based on location of @p lhs_data.
* Update @ref p_verify_stats_ based on the result:
* increment exactly one of {n_from_, n_to_, n_ext_}
**/
void verify_aux(AGCObject * lhs_iface,
void * lhs_data);
/** Cleanup at the end of a gc cycle.
* Reset from-space
* (current from-space is former to-space,
@ -252,6 +221,28 @@ namespace xo {
AGCObject * iface,
void * from_src);
/** Evacuate object at @p *lhs_data to to-space, during collection phase
* acting on generations g in [0 ,.., upto).
* Need @p gc to pass to invoke AGCObject methods shallow_copy() and
* forward_children()
*
* Replace original with forwarding pointer to new location
**/
void _forward_inplace_aux(obj<AGCObjectVisitor> gc,
AGCObject * lhs_iface,
void ** lhs_data,
Generation upto);
/** categorize fop {@p lhs_iface, @p lhs_data}
* based on location of @p lhs_data.
* Update @ref p_verify_stats_ based on the result:
* increment exactly one of {n_from_, n_to_, n_ext_}
**/
void _verify_aux(AGCObject * lhs_iface,
void * lhs_data);
friend class DGCObjectStoreVisitor;
private:
/** configuration for gc-aware object store **/
GCObjectStoreConfig config_;