Skip to content

Commit d448610

Browse files
authored
Fixup Json::Value append methods, run clang format. (open-source-parsers#1022)
1 parent 00b979f commit d448610

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/lib_json/json_value.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,10 +1155,14 @@ Value const& Value::operator[](CppTL::ConstString const& key) const {
11551155
}
11561156
#endif
11571157

1158-
Value& Value::append(const Value& value) { return (*this)[size()] = value; }
1159-
1158+
Value& Value::append(const Value& value) { return append(Value(value)); }
11601159
Value& Value::append(Value&& value) {
1161-
return (*this)[size()] = std::move(value);
1160+
JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue,
1161+
"in Json::Value::append: requires arrayValue");
1162+
if (type() == nullValue) {
1163+
*this = Value(arrayValue);
1164+
}
1165+
return this->value_.map_->emplace(size(), std::move(value)).first->second;
11621166
}
11631167

11641168
Value Value::get(char const* begin,

0 commit comments

Comments
 (0)