From 6c8da340c81c6043a42bdf4f86b3e8afa1a4cb4b Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Fri, 1 May 2026 20:14:26 -0400 Subject: [PATCH] xo-object2 stack: RAllocator.assign_barrier() works. use for DList::assign_head(), DArray::assign_at(). --- src/object2/DArray.cpp | 17 +++++++++-------- src/object2/DList.cpp | 8 ++++---- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/object2/DArray.cpp b/src/object2/DArray.cpp index 44b5a83..aeb0319 100644 --- a/src/object2/DArray.cpp +++ b/src/object2/DArray.cpp @@ -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(); - 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_); diff --git a/src/object2/DList.cpp b/src/object2/DList.cpp index 0b694aa..f6e5d49 100644 --- a/src/object2/DList.cpp +++ b/src/object2/DList.cpp @@ -124,11 +124,11 @@ namespace xo { { scope log(XO_DEBUG(true), xtag("mm.data", mm.data_)); - mm.barrier_assign_aux(this, - head_.iface(), head_.opaque_data_addr(), - rhs.iface(), rhs.opaque_data()); + mm.barrier_assign(this, &head_, rhs); - //mm_do_assign(gc, this, &head_, rhs); + //mm.barrier_assign_aux(this, + // head_.iface(), head_.opaque_data_addr(), + // rhs.iface(), rhs.opaque_data()); } // vestigial. used in MockCollector