mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-05-04 15:57:59 +03:00
Merge pull request #3053 from akortunov/master
Add move assignment operator for the ESM::Variant
This commit is contained in:
commit
90baf8ad60
2 changed files with 23 additions and 0 deletions
|
@ -62,10 +62,31 @@ ESM::Variant& ESM::Variant::operator= (const Variant& variant)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ESM::Variant& ESM::Variant::operator= (Variant&& variant)
|
||||||
|
{
|
||||||
|
if (&variant!=this)
|
||||||
|
{
|
||||||
|
delete mData;
|
||||||
|
|
||||||
|
mType = variant.mType;
|
||||||
|
mData = variant.mData;
|
||||||
|
|
||||||
|
variant.mData = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
ESM::Variant::Variant (const Variant& variant)
|
ESM::Variant::Variant (const Variant& variant)
|
||||||
: mType (variant.mType), mData (variant.mData ? variant.mData->clone() : nullptr)
|
: mType (variant.mType), mData (variant.mData ? variant.mData->clone() : nullptr)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
ESM::Variant::Variant(Variant&& variant)
|
||||||
|
: mType (variant.mType), mData (variant.mData)
|
||||||
|
{
|
||||||
|
variant.mData = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
ESM::VarType ESM::Variant::getType() const
|
ESM::VarType ESM::Variant::getType() const
|
||||||
{
|
{
|
||||||
return mType;
|
return mType;
|
||||||
|
|
|
@ -46,8 +46,10 @@ namespace ESM
|
||||||
~Variant();
|
~Variant();
|
||||||
|
|
||||||
Variant& operator= (const Variant& variant);
|
Variant& operator= (const Variant& variant);
|
||||||
|
Variant& operator= (Variant && variant);
|
||||||
|
|
||||||
Variant (const Variant& variant);
|
Variant (const Variant& variant);
|
||||||
|
Variant (Variant&& variant);
|
||||||
|
|
||||||
VarType getType() const;
|
VarType getType() const;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue