refactor: rename shallow_copy -> shallow_move + streamline
Use RCollector.std_copy_for where appropriate
This commit is contained in:
parent
9a494d268b
commit
d0e6ab5b44
8 changed files with 19 additions and 12 deletions
|
|
@ -156,9 +156,12 @@ namespace xo {
|
|||
}
|
||||
|
||||
DString *
|
||||
DString::shallow_move(obj<AAllocator> mm) const noexcept
|
||||
DString::shallow_move(obj<ACollector> gc) noexcept
|
||||
{
|
||||
DString * copy = (DString *)mm.alloc_copy((std::byte *)this);
|
||||
// note: not using gc.std_copy_for() here
|
||||
// b/c DString flexible array means not move-constructible
|
||||
|
||||
DString * copy = (DString *)gc.alloc_copy_for(this);
|
||||
|
||||
if (copy) {
|
||||
copy->capacity_ = capacity_;
|
||||
|
|
|
|||
|
|
@ -88,12 +88,16 @@ namespace xo {
|
|||
}
|
||||
|
||||
DUniqueString *
|
||||
DUniqueString::shallow_move(obj<AAllocator> mm) const noexcept
|
||||
DUniqueString::shallow_move(obj<ACollector> gc) noexcept
|
||||
{
|
||||
// well-posed, but not expected to be used.
|
||||
//
|
||||
// Not using gc.std_copy_for() here because compiler doesn't know
|
||||
// actual alloc size of a DUniqueString instance
|
||||
|
||||
assert(false);
|
||||
|
||||
DUniqueString * copy = (DUniqueString *)mm.alloc_copy((std::byte *)this);
|
||||
DUniqueString * copy = (DUniqueString *)gc.alloc_copy((std::byte *)this);
|
||||
|
||||
if (copy) {
|
||||
// Copy assignment not implemented in general
|
||||
|
|
|
|||
|
|
@ -22,9 +22,9 @@ namespace xo {
|
|||
}
|
||||
|
||||
auto
|
||||
IGCObject_DString::shallow_move(DString & self, obj<AAllocator> mm) noexcept -> Opaque
|
||||
IGCObject_DString::shallow_move(DString & self, obj<ACollector> gc) noexcept -> Opaque
|
||||
{
|
||||
return self.shallow_move(mm);
|
||||
return self.shallow_move(gc);
|
||||
}
|
||||
auto
|
||||
IGCObject_DString::forward_children(DString & self, obj<ACollector> gc) noexcept -> size_type
|
||||
|
|
|
|||
|
|
@ -22,9 +22,9 @@ namespace xo {
|
|||
}
|
||||
|
||||
auto
|
||||
IGCObject_DUniqueString::shallow_move(DUniqueString & self, obj<AAllocator> mm) noexcept -> Opaque
|
||||
IGCObject_DUniqueString::shallow_move(DUniqueString & self, obj<ACollector> gc) noexcept -> Opaque
|
||||
{
|
||||
return self.shallow_move(mm);
|
||||
return self.shallow_move(gc);
|
||||
}
|
||||
auto
|
||||
IGCObject_DUniqueString::forward_children(DUniqueString & self, obj<ACollector> gc) noexcept -> size_type
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue