| 1147 | } |
| 1148 | |
| 1149 | Value |
| 1150 | Value::removeMember( const char* key ) |
| 1151 | { |
| 1152 | JSON_ASSERT( type_ == nullValue || type_ == objectValue ); |
| 1153 | if ( type_ == nullValue ) |
| 1154 | return null; |
| 1155 | #ifndef JSON_VALUE_USE_INTERNAL_MAP |
| 1156 | CZString actualKey( key, CZString::noDuplication ); |
| 1157 | ObjectValues::iterator it = value_.map_->find( actualKey ); |
| 1158 | if ( it == value_.map_->end() ) |
| 1159 | return null; |
| 1160 | Value old(it->second); |
| 1161 | value_.map_->erase(it); |
| 1162 | return old; |
| 1163 | #else |
| 1164 | Value *value = value_.map_->find( key ); |
| 1165 | if (value){ |
| 1166 | Value old(*value); |
| 1167 | value_.map_.remove( key ); |
| 1168 | return old; |
| 1169 | } else { |
| 1170 | return null; |
| 1171 | } |
| 1172 | #endif |
| 1173 | } |
| 1174 | |
| 1175 | Value |
| 1176 | Value::removeMember( const std::string &key ) |