xo-gc: bugfixes for GCObjectStore, unit test exapnded

In particular: drop casual assignment to DList.rest_,
will break acyclic assumption of DList.size()
This commit is contained in:
Roland Conybeare 2026-04-11 16:51:52 -04:00
commit d0cb7437de
10 changed files with 374 additions and 344 deletions

View file

@ -65,8 +65,8 @@ namespace xo {
/** assign head **/
void assign_head(obj<ACollector> gc, obj<AGCObject> h);
/** assign rest-pointer **/
void assign_rest(DList * r);
/** assign rest-pointer. Caller responsible for preserving acyclic property! **/
void _assign_rest(DList * r);
/** pretty-printing driver; combine layout+printing **/
bool pretty(const ppindentinfo & ppii) const;

View file

@ -128,7 +128,7 @@ namespace xo {
}
void
DList::assign_rest(DList * r)
DList::_assign_rest(DList * r)
{
scope log(XO_DEBUG(true), "need write barrier");