[ox/std] Fix Vector copy constructor not to move items

This commit is contained in:
Gary Talent 2021-06-04 23:37:47 -05:00
parent db3c2602fd
commit 33775f59ff
2 changed files with 10 additions and 5 deletions

View File

@ -82,19 +82,24 @@ struct DescriptorField {
~DescriptorField(); ~DescriptorField();
const DescriptorField &operator=(DescriptorField &&other) noexcept { const DescriptorField &operator=(const DescriptorField &other) noexcept {
type = other.type; type = other.type;
fieldName = other.fieldName; fieldName = other.fieldName;
subscriptLevels = other.subscriptLevels; subscriptLevels = other.subscriptLevels;
typeName = other.typeName; typeName = other.typeName;
ownsType = other.ownsType; ownsType = other.ownsType;
return *this;
}
const DescriptorField &operator=(DescriptorField &&other) noexcept {
type = move(other.type);
other.type = {}; other.type = {};
other.fieldName = ""; fieldName = move(other.fieldName);
subscriptLevels = move(other.subscriptLevels);
other.subscriptLevels = {}; other.subscriptLevels = {};
other.typeName = ""; typeName = move(other.typeName);
ownsType = move(other.ownsType);
other.ownsType = {}; other.ownsType = {};
return *this; return *this;
} }

View File

@ -301,7 +301,7 @@ Vector<T, SmallVectorSize>::Vector(const Vector &other) {
m_cap = other.m_cap; m_cap = other.m_cap;
this->initItems(&m_items, other.m_cap); this->initItems(&m_items, other.m_cap);
for (std::size_t i = 0; i < m_size; ++i) { for (std::size_t i = 0; i < m_size; ++i) {
m_items[i] = move(other.m_items[i]); m_items[i] = other.m_items[i];
} }
} }