xo-gc stack: refactor + streamline.
Retiring unused Collector typealiases. Fix #include topology. Fix/improve write barrier setup.
This commit is contained in:
parent
7264efb605
commit
b1d2ae6f19
17 changed files with 130 additions and 94 deletions
|
|
@ -85,6 +85,13 @@ namespace xo {
|
|||
obj<AGCObject> * p_lhs,
|
||||
obj<AGCObject> rhs) noexcept;
|
||||
|
||||
// Need _drepr suffix to distinguish from .barrier_assign()
|
||||
// see [RAllocator_aux.hpp] for implementation
|
||||
template <typename DRepr>
|
||||
void barrier_assign_drepr(void * parent,
|
||||
DRepr ** lhs_data,
|
||||
DRepr * rhs_data);
|
||||
|
||||
static bool _valid;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,23 @@ namespace xo {
|
|||
rhs.iface(), rhs.opaque_data());
|
||||
}
|
||||
|
||||
template <typename Object>
|
||||
template <typename DRepr>
|
||||
void
|
||||
RAllocator<Object>::barrier_assign_drepr(void * parent,
|
||||
DRepr ** lhs_data,
|
||||
DRepr * rhs_data)
|
||||
{
|
||||
// need to get AGCObject i/face that goes with DRepr.
|
||||
obj<AGCObject,DRepr> rhs_gco(rhs_data);
|
||||
|
||||
this->barrier_assign_aux(parent,
|
||||
nullptr /*not needed*/,
|
||||
lhs_data,
|
||||
rhs_gco.iface(),
|
||||
rhs_data);
|
||||
}
|
||||
|
||||
} /*namespace mm*/
|
||||
} /*namespace xo*/
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue