| 2389 | } |
| 2390 | |
| 2391 | void Value::resize(ArrayIndex newSize) { |
| 2392 | JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue, |
| 2393 | "in Json::Value::resize(): requires arrayValue"); |
| 2394 | if (type_ == nullValue) |
| 2395 | *this = Value(arrayValue); |
| 2396 | #ifndef JSON_VALUE_USE_INTERNAL_MAP |
| 2397 | ArrayIndex oldSize = size(); |
| 2398 | if (newSize == 0) |
| 2399 | clear(); |
| 2400 | else if (newSize > oldSize) |
| 2401 | (*this)[newSize - 1]; |
| 2402 | else { |
| 2403 | for (ArrayIndex index = newSize; index < oldSize; ++index) { |
| 2404 | value_.map_->erase(index); |
| 2405 | } |
| 2406 | assert(size() == newSize); |
| 2407 | } |
| 2408 | #else |
| 2409 | value_.array_->resize(newSize); |
| 2410 | #endif |
| 2411 | } |
| 2412 | |
| 2413 | Value &Value::operator[](ArrayIndex index) { |
| 2414 | JSON_ASSERT_MESSAGE( |
no test coverage detected