From 71253c2b729b4c4d2635144713a2a2eac8e4ede8 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 4 Dec 2018 16:41:52 +0800 Subject: [PATCH] 1 --- a8/xobject.cc | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/a8/xobject.cc b/a8/xobject.cc index d60498b..fe6db94 100644 --- a/a8/xobject.cc +++ b/a8/xobject.cc @@ -20,8 +20,29 @@ namespace a8 XObject::XObject(const a8::XObject& v) { - type_ = XOT_SIMPLE; - value_.x_value = new a8::XValue(); + switch (v.type_) { + case XOT_SIMPLE: + { + value_.x_value = new a8::XValue(); + } + break; + case XOT_ARRAY: + { + value_.array_value = new std::vector>(); + } + break; + case XOT_OBJECT: + { + value_.object_value = new std::map>(); + } + break; + default: + { + abort(); + } + break; + } + type_ = v.type_; *this = v; } @@ -231,8 +252,12 @@ namespace a8 { if (!value_.x_value) { value_.x_value = new a8::XValue(); + } else { + *value_.x_value = a8::XValue(); + } + if (obj.value_.x_value) { + *value_.x_value = *obj.value_.x_value; } - *value_.x_value = *obj.value_.x_value; } break; case XOT_ARRAY: