| 3559 | } |
| 3560 | |
| 3561 | bool Value::removeMember(const char *begin, const char *end, Value *removed) { |
| 3562 | if (type() != objectValue) { |
| 3563 | return false; |
| 3564 | } |
| 3565 | CZString actualKey(begin, static_cast<unsigned>(end - begin), |
| 3566 | CZString::noDuplication); |
| 3567 | auto it = value_.map_->find(actualKey); |
| 3568 | if (it == value_.map_->end()) |
| 3569 | return false; |
| 3570 | if (removed) |
| 3571 | *removed = std::move(it->second); |
| 3572 | value_.map_->erase(it); |
| 3573 | return true; |
| 3574 | } |
| 3575 | bool Value::removeMember(const char *key, Value *removed) { |
| 3576 | return removeMember(key, key + strlen(key), removed); |
| 3577 | } |