void Value::releasePayload() { switch (type()) { case nullValue: case intValue: case uintValue: case realValue: case booleanValue: break; case stringValue: if (isAllocated()) releasePrefixedStringValue(value_.string_); break; case arrayValue: case objectValue: delete value_.map_; break; default: JSON_ASSERT_UNREACHABLE; } }
Value::~Value() { switch (type_) { case nullValue: case intValue: case uintValue: case realValue: case booleanValue: break; case stringValue: if (allocated_) releasePrefixedStringValue(value_.string_); break; case arrayValue: case objectValue: delete value_.map_; break; default: JSON_ASSERT_UNREACHABLE; } delete[] comments_; value_.uint_ = 0; }