| Index: chromecast/base/device_capabilities_impl.cc
|
| diff --git a/chromecast/base/device_capabilities_impl.cc b/chromecast/base/device_capabilities_impl.cc
|
| index bc4be65122f5924e6ad871d15698d21bc0ce2c9c..7361390cfd20c2f031dbd18b60f41f8d79d6465a 100644
|
| --- a/chromecast/base/device_capabilities_impl.cc
|
| +++ b/chromecast/base/device_capabilities_impl.cc
|
| @@ -83,33 +83,31 @@ DeviceCapabilitiesImpl::~DeviceCapabilitiesImpl() {
|
| }
|
|
|
| void DeviceCapabilitiesImpl::Register(const std::string& key,
|
| - scoped_ptr<base::Value> init_value,
|
| Validator* validator) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| DCHECK(IsValidRegisterKey(key));
|
| - DCHECK(init_value.get());
|
| DCHECK(validator);
|
|
|
| - AddValidator(key, validator);
|
| -
|
| - capabilities_->Set(key, init_value.Pass());
|
| - UpdateStrAndNotifyChanged(key);
|
| + bool added = validator_map_.insert(std::make_pair(key, validator)).second;
|
| + // Check that a validator has not already been registered for this key
|
| + DCHECK(added);
|
| }
|
|
|
| void DeviceCapabilitiesImpl::Unregister(const std::string& key,
|
| const Validator* validator) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - auto validator_it = validator_map_.find(key);
|
| - DCHECK(validator_it != validator_map_.end());
|
| // Check that validator being unregistered matches the original for |key|.
|
| // This prevents managers from accidentally unregistering incorrect
|
| // validators.
|
| - DCHECK_EQ(validator, validator_it->second);
|
| - validator_map_.erase(validator_it);
|
| + DCHECK_EQ(validator, GetValidator(key));
|
| + bool erased = validator_map_.erase(key);
|
| + DCHECK(erased);
|
| +}
|
|
|
| - bool removed = capabilities_->Remove(key, nullptr);
|
| - DCHECK(removed);
|
| - UpdateStrAndNotifyChanged(key);
|
| +DeviceCapabilities::Validator* DeviceCapabilitiesImpl::GetValidator(
|
| + const std::string& key) const {
|
| + auto validator_it = validator_map_.find(key);
|
| + return validator_it == validator_map_.end() ? nullptr : validator_it->second;
|
| }
|
|
|
| bool DeviceCapabilitiesImpl::BluetoothSupported() const {
|
| @@ -208,14 +206,6 @@ void DeviceCapabilitiesImpl::SetValidatedValueInternal(
|
| UpdateStrAndNotifyChanged(path);
|
| }
|
|
|
| -void DeviceCapabilitiesImpl::AddValidator(const std::string& key,
|
| - Validator* validator) {
|
| - DCHECK(validator);
|
| - bool added = validator_map_.insert(std::make_pair(key, validator)).second;
|
| - // Check that a validator has not already been registered for this key
|
| - DCHECK(added);
|
| -}
|
| -
|
| void DeviceCapabilitiesImpl::UpdateStrAndNotifyChanged(
|
| const std::string& path) {
|
| // Update capabilities string here since all updates to capabilities must
|
|
|