| 1168 | } |
| 1169 | |
| 1170 | bool Value::removeMember(const char* begin, const char* end, Value* removed) { |
| 1171 | if (type() != objectValue) { |
| 1172 | return false; |
| 1173 | } |
| 1174 | CZString actualKey(begin, static_cast<unsigned>(end - begin), |
| 1175 | CZString::noDuplication); |
| 1176 | auto it = value_.map_->find(actualKey); |
| 1177 | if (it == value_.map_->end()) |
| 1178 | return false; |
| 1179 | if (removed) |
| 1180 | *removed = std::move(it->second); |
| 1181 | value_.map_->erase(it); |
| 1182 | return true; |
| 1183 | } |
| 1184 | bool Value::removeMember(const char* key, Value* removed) { |
| 1185 | return removeMember(key, key + strlen(key), removed); |
| 1186 | } |