xo-alloc / xo-ordinaltree: work on dual-alloc-policy trees

This commit is contained in:
Roland Conybeare 2025-12-02 10:37:07 -05:00
commit 77f84cabbb
3 changed files with 10 additions and 2 deletions

View file

@ -318,7 +318,8 @@ namespace xo {
* @param rhs. new target for @p *lhs
**/
virtual void assign_member(IObject * parent, IObject ** lhs, IObject* rhs) final override;
/** evacuate @p *lhs and replace with forwarding pointer **/
virtual void forward_inplace(IObject ** lhs) final override;
/** during GC check for source objects owned by GC.
* See Object::_shallow_move.
**/

View file

@ -568,6 +568,12 @@ namespace xo {
}
}
void
GC::forward_inplace(IObject ** lhs)
{
Object::_forward_inplace(lhs, this);
}
bool
GC::check_owned(IObject * src) const
{

View file

@ -24,7 +24,8 @@ namespace xo {
Object::mm = nullptr;
IObject *
Object::_forward(IObject * src, gc::IAlloc * gc)
Object::_forward(IObject * src,
gc::IAlloc * gc)
{
if (!src)
return src;