| 957 | } |
| 958 | |
| 959 | void |
| 960 | Value::resize( UInt newSize ) |
| 961 | { |
| 962 | JSON_ASSERT( type_ == nullValue || type_ == arrayValue ); |
| 963 | if ( type_ == nullValue ) |
| 964 | *this = Value( arrayValue ); |
| 965 | #ifndef JSON_VALUE_USE_INTERNAL_MAP |
| 966 | UInt oldSize = size(); |
| 967 | if ( newSize == 0 ) |
| 968 | clear(); |
| 969 | else if ( newSize > oldSize ) |
| 970 | (*this)[ newSize - 1 ]; |
| 971 | else |
| 972 | { |
| 973 | for ( UInt index = newSize; index < oldSize; ++index ) |
| 974 | value_.map_->erase( index ); |
| 975 | assert( size() == newSize ); |
| 976 | } |
| 977 | #else |
| 978 | value_.array_->resize( newSize ); |
| 979 | #endif |
| 980 | } |
| 981 | |
| 982 | |
| 983 | Value & |
no test coverage detected