fix(Variant): use swap when possible

This commit is contained in:
Ronan Abhamon 2017-11-10 09:25:12 +01:00
parent a30050c8bd
commit c4fadd417b

View file

@ -108,8 +108,7 @@ Variant::Variant (const Variant &src) {
Variant::Variant (Variant &&src) {
// Don't call placement new.
L_ASSERT(!mPrivate);
mPrivate = src.mPrivate;
src.mPrivate = nullptr;
::swap(mPrivate, src.mPrivate);
}
Variant::Variant (int value) : Variant(Int) {
@ -220,13 +219,7 @@ Variant &Variant::operator= (const Variant &variant) {
}
Variant &Variant::operator= (Variant &&variant) {
// Unset old d.
delete mPrivate;
// Set new d.
mPrivate = variant.mPrivate;
variant.mPrivate = nullptr;
::swap(mPrivate, variant.mPrivate);
return *this;
}