refactor: rename GCObject.shallow_copy -> shallow_move
resolve conflict since relying on move constructor in std_copy_for
This commit is contained in:
parent
94737e1efc
commit
46c1efa952
7 changed files with 13 additions and 13 deletions
|
|
@ -56,10 +56,10 @@
|
|||
},
|
||||
],
|
||||
nonconst_methods: [
|
||||
// Opaque shallow_copy(obj<AAllocator>>) noexcept
|
||||
// Opaque shallow_move(obj<AAllocator>>) noexcept
|
||||
{
|
||||
name: "shallow_copy",
|
||||
doc: ["copy instance using allocator"],
|
||||
name: "shallow_move",
|
||||
doc: ["move instance using allocator"],
|
||||
return_type: "Opaque",
|
||||
args:[
|
||||
{type: "obj<AAllocator>", name: "mm"},
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ public:
|
|||
virtual size_type shallow_size(Copaque data) const noexcept = 0;
|
||||
|
||||
// nonconst methods
|
||||
/** copy instance using allocator **/
|
||||
virtual Opaque shallow_copy(Opaque data, obj<AAllocator> mm) const noexcept = 0;
|
||||
/** move instance using allocator **/
|
||||
virtual Opaque shallow_move(Opaque data, obj<AAllocator> mm) const noexcept = 0;
|
||||
/** during GC: forward immdiate children **/
|
||||
virtual size_type forward_children(Opaque data, obj<ACollector> gc) const noexcept = 0;
|
||||
///@}
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ namespace mm {
|
|||
[[noreturn]] size_type shallow_size(Copaque) const noexcept override { _fatal(); }
|
||||
|
||||
// nonconst methods
|
||||
[[noreturn]] Opaque shallow_copy(Opaque, obj<AAllocator>) const noexcept override;
|
||||
[[noreturn]] Opaque shallow_move(Opaque, obj<AAllocator>) const noexcept override;
|
||||
[[noreturn]] size_type forward_children(Opaque, obj<ACollector>) const noexcept override;
|
||||
|
||||
///@}
|
||||
|
|
|
|||
|
|
@ -54,8 +54,8 @@ namespace mm {
|
|||
}
|
||||
|
||||
// non-const methods
|
||||
Opaque shallow_copy(Opaque data, obj<AAllocator> mm) const noexcept override {
|
||||
return I::shallow_copy(_dcast(data), mm);
|
||||
Opaque shallow_move(Opaque data, obj<AAllocator> mm) const noexcept override {
|
||||
return I::shallow_move(_dcast(data), mm);
|
||||
}
|
||||
size_type forward_children(Opaque data, obj<ACollector> gc) const noexcept override {
|
||||
return I::forward_children(_dcast(data), gc);
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ public:
|
|||
void * std_copy_for(const T * src) noexcept {
|
||||
void * mem = this->alloc_copy_for(src);
|
||||
if (mem) {
|
||||
new (mem) T(std::move(*src));
|
||||
return new (mem) T(std::move(*src));
|
||||
}
|
||||
return (T *)mem;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/** forward faceted object pointer in place. Defined in GCObject.hpp to avoid #include cycle **/
|
||||
|
|
|
|||
|
|
@ -60,8 +60,8 @@ public:
|
|||
}
|
||||
|
||||
// non-const methods (still const in router!)
|
||||
Opaque shallow_copy(obj<AAllocator> mm) noexcept {
|
||||
return O::iface()->shallow_copy(O::data(), mm);
|
||||
Opaque shallow_move(obj<AAllocator> mm) noexcept {
|
||||
return O::iface()->shallow_move(O::data(), mm);
|
||||
}
|
||||
size_type forward_children(obj<ACollector> gc) noexcept {
|
||||
return O::iface()->forward_children(O::data(), gc);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ IGCObject_Any::_valid
|
|||
// nonconst methods
|
||||
|
||||
auto
|
||||
IGCObject_Any::shallow_copy(Opaque, obj<AAllocator>) const noexcept -> Opaque
|
||||
IGCObject_Any::shallow_move(Opaque, obj<AAllocator>) const noexcept -> Opaque
|
||||
{
|
||||
_fatal();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue