mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2025-01-14 09:57:56 +08:00
This commit is contained in:
parent
62ab94ddd3
commit
c07ef37904
@ -240,8 +240,6 @@ Json::Value obj_value(Json::objectValue); // {}
|
|||||||
|
|
||||||
Value& operator=(Value other);
|
Value& operator=(Value other);
|
||||||
/// Swap values.
|
/// Swap values.
|
||||||
/// \note Currently, comments are intentionally not swapped, for
|
|
||||||
/// both logic and efficiency.
|
|
||||||
void swap(Value& other);
|
void swap(Value& other);
|
||||||
|
|
||||||
ValueType type() const;
|
ValueType type() const;
|
||||||
@ -444,6 +442,9 @@ private:
|
|||||||
|
|
||||||
Value& resolveReference(const char* key, bool isStatic);
|
Value& resolveReference(const char* key, bool isStatic);
|
||||||
|
|
||||||
|
/// Swap values but leave comments and source offsets in place.
|
||||||
|
void swapPayload(Value& other);
|
||||||
|
|
||||||
#ifdef JSON_VALUE_USE_INTERNAL_MAP
|
#ifdef JSON_VALUE_USE_INTERNAL_MAP
|
||||||
inline bool isItemAvailable() const { return itemIsUsed_ == 0; }
|
inline bool isItemAvailable() const { return itemIsUsed_ == 0; }
|
||||||
|
|
||||||
|
@ -406,11 +406,11 @@ Value::~Value() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Value& Value::operator=(Value other) {
|
Value& Value::operator=(Value other) {
|
||||||
swap(other);
|
swapPayload(other);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Value::swap(Value& other) {
|
void Value::swapPayload(Value& other) {
|
||||||
ValueType temp = type_;
|
ValueType temp = type_;
|
||||||
type_ = other.type_;
|
type_ = other.type_;
|
||||||
other.type_ = temp;
|
other.type_ = temp;
|
||||||
@ -418,6 +418,11 @@ void Value::swap(Value& other) {
|
|||||||
int temp2 = allocated_;
|
int temp2 = allocated_;
|
||||||
allocated_ = other.allocated_;
|
allocated_ = other.allocated_;
|
||||||
other.allocated_ = temp2;
|
other.allocated_ = temp2;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Value::swap(Value& other) {
|
||||||
|
swapPayload(other);
|
||||||
|
std::swap(comments_, other.comments_);
|
||||||
std::swap(start_, other.start_);
|
std::swap(start_, other.start_);
|
||||||
std::swap(limit_, other.limit_);
|
std::swap(limit_, other.limit_);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user