From c4fadd417bf15d3ace4e2ade7f9683695a844bfc Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Fri, 10 Nov 2017 09:25:12 +0100 Subject: [PATCH] fix(Variant): use `swap` when possible --- src/variant/variant.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/variant/variant.cpp b/src/variant/variant.cpp index 8f9b4e9e6..efa7d084a 100644 --- a/src/variant/variant.cpp +++ b/src/variant/variant.cpp @@ -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; }