refactor: void return type for Collector.forward_children()
This commit is contained in:
parent
5172de7862
commit
5eb7abf5f2
92 changed files with 145 additions and 137 deletions
|
|
@ -312,7 +312,7 @@
|
|||
"",
|
||||
"/** convenience template for move-constructible T (this is common) **/",
|
||||
"template <typename T>",
|
||||
"T * std_copy_for(const T * src) noexcept {",
|
||||
"T * std_move_for(T * src) noexcept {",
|
||||
" void * mem = this->alloc_copy_for(src);",
|
||||
" if (mem) {",
|
||||
" return new (mem) T(std::move(*src));",
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@
|
|||
{
|
||||
name: "forward_children",
|
||||
doc: ["during GC: forward immdiate children"],
|
||||
return_type: "size_type",
|
||||
return_type: "void",
|
||||
args: [
|
||||
{type: "obj<ACollector>", name: "gc"},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public:
|
|||
/** move instance using allocator **/
|
||||
virtual Opaque shallow_move(Opaque data, obj<ACollector> gc) const noexcept = 0;
|
||||
/** during GC: forward immdiate children **/
|
||||
virtual size_type forward_children(Opaque data, obj<ACollector> gc) const noexcept = 0;
|
||||
virtual void forward_children(Opaque data, obj<ACollector> gc) const noexcept = 0;
|
||||
///@}
|
||||
}; /*AGCObject*/
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ namespace mm {
|
|||
|
||||
// nonconst methods
|
||||
[[noreturn]] Opaque shallow_move(Opaque, obj<ACollector>) const noexcept override;
|
||||
[[noreturn]] size_type forward_children(Opaque, obj<ACollector>) const noexcept override;
|
||||
[[noreturn]] void forward_children(Opaque, obj<ACollector>) const noexcept override;
|
||||
|
||||
///@}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ namespace mm {
|
|||
Opaque shallow_move(Opaque data, obj<ACollector> gc) const noexcept override {
|
||||
return I::shallow_move(_dcast(data), gc);
|
||||
}
|
||||
size_type forward_children(Opaque data, obj<ACollector> gc) const noexcept override {
|
||||
void forward_children(Opaque data, obj<ACollector> gc) const noexcept override {
|
||||
return I::forward_children(_dcast(data), gc);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public:
|
|||
void * alloc_copy_for(const T * src) noexcept {
|
||||
return O::iface()->alloc_copy(O::data(), (std::byte *)const_cast<T *>(src));
|
||||
}
|
||||
|
||||
|
||||
/** convenience template for move-constructible T (this is common) **/
|
||||
template <typename T>
|
||||
T * std_move_for(T * src) noexcept {
|
||||
|
|
@ -62,28 +62,28 @@ public:
|
|||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
/** forward faceted object pointer in place. Defined in GCObject.hpp to avoid #include cycle **/
|
||||
template <typename DRepr>
|
||||
void forward_inplace(obj<AGCObject,DRepr> * p_obj);
|
||||
|
||||
|
||||
/** another convenience template for forwarding.
|
||||
* Defined in RGCObject.hpp to avoid #include cycle.
|
||||
**/
|
||||
template <typename DRepr>
|
||||
void forward_inplace(DRepr ** pp_repr);
|
||||
|
||||
|
||||
/** convenience template where pointer requires pivot **/
|
||||
template <typename AFacet, typename DRepr>
|
||||
requires (!std::is_same_v<AFacet, AGCObject>)
|
||||
void forward_pivot_inplace(obj<AFacet,DRepr> * p_obj);
|
||||
|
||||
|
||||
/** add root @p p_root **/
|
||||
template<typename DRepr>
|
||||
void add_gc_root(obj<AGCObject, DRepr> * p_root) {
|
||||
O::iface()->add_gc_root_poly(O::data(), (obj<AGCObject> *)p_root);
|
||||
}
|
||||
|
||||
|
||||
/** remove root @p p_root **/
|
||||
template <typename DRepr>
|
||||
void remove_gc_root(obj<AGCObject, DRepr> * p_root) {
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public:
|
|||
Opaque shallow_move(obj<ACollector> gc) noexcept {
|
||||
return O::iface()->shallow_move(O::data(), gc);
|
||||
}
|
||||
size_type forward_children(obj<ACollector> gc) noexcept {
|
||||
void forward_children(obj<ACollector> gc) noexcept {
|
||||
return O::iface()->forward_children(O::data(), gc);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ IGCObject_Any::shallow_move(Opaque, obj<ACollector>) const noexcept -> Opaque
|
|||
}
|
||||
|
||||
auto
|
||||
IGCObject_Any::forward_children(Opaque, obj<ACollector>) const noexcept -> size_type
|
||||
IGCObject_Any::forward_children(Opaque, obj<ACollector>) const noexcept -> void
|
||||
{
|
||||
_fatal();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue