From 261b8cc88008b466b4337dcd5ce597c5786e9627 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Thu, 14 Sep 2017 15:46:01 +0200 Subject: [PATCH] feat(Variant): add copy constructor impl --- src/variant/variant.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/variant/variant.cpp b/src/variant/variant.cpp index c43499a95..2c1ab35e1 100644 --- a/src/variant/variant.cpp +++ b/src/variant/variant.cpp @@ -66,7 +66,18 @@ Variant::Variant (Type type) : Variant() { } Variant::Variant (const Variant &src) { - // TODO. + // Don't call placement new. + L_ASSERT(!mPrivate); + mPrivate = new VariantPrivate(); + + L_D(Variant); + d->type = src.getPrivate()->type; + + const VariantPrivate::Value &value = src.getPrivate()->value; + if (d->type == String) + d->value.str = new string(*value.str); + else + d->value = value; } Variant::Variant (Variant &&src) {