xo-object2 stack: RAllocator.assign_barrier() works.

use for DList::assign_head(), DArray::assign_at().
This commit is contained in:
Roland Conybeare 2026-05-01 20:14:26 -04:00
commit 6c8da340c8
2 changed files with 13 additions and 12 deletions

View file

@ -82,10 +82,11 @@ namespace xo {
scope log(XO_DEBUG(true), "need write barrier");
mm.barrier_assign_aux(this,
elts_[ix].iface(), elts_[ix].opaque_data_addr(),
x.iface(), x.opaque_data());
// mm_do_assign(gc, this, &elts_[ix], x);
mm.barrier_assign(this, &elts_[ix], x);
//mm.barrier_assign_aux(this,
// elts_[ix].iface(), elts_[ix].opaque_data_addr(),
// x.iface(), x.opaque_data());
return true;
}
@ -101,11 +102,11 @@ namespace xo {
void * mem = &(elts_[size_]);
new (mem) obj<AGCObject>();
mm.barrier_assign_aux(this,
elts_[size_].iface(), elts_[size_].opaque_data_addr(),
elt.iface(), elt.opaque_data());
mm.barrier_assign(this, &elts_[size_], elt);
//mm_do_assign(gc, this, &(elts_[size_]), elt);
//mm.barrier_assign_aux(this,
// elts_[size_].iface(), elts_[size_].opaque_data_addr(),
// elt.iface(), elt.opaque_data());
++(this->size_);