Chromium Code Reviews| Index: device/bluetooth/bluetooth_socket_chromeos.cc |
| diff --git a/device/bluetooth/bluetooth_socket_chromeos.cc b/device/bluetooth/bluetooth_socket_chromeos.cc |
| index 3026113a5cb9a1de191b98e29b04759b29129b4e..a67e974fc0849d0e5702b9b3b7beb138303fd17a 100644 |
| --- a/device/bluetooth/bluetooth_socket_chromeos.cc |
| +++ b/device/bluetooth/bluetooth_socket_chromeos.cc |
| @@ -110,6 +110,8 @@ void BluetoothSocketChromeOS::Connect( |
| if (security_level == SECURITY_LEVEL_LOW) |
| options_->require_authentication.reset(new bool(false)); |
| + adapter_ = device->adapter(); |
| + |
| RegisterProfile(device->adapter(), success_callback, error_callback); |
| } |
| @@ -128,7 +130,8 @@ void BluetoothSocketChromeOS::Listen( |
| return; |
| } |
| - adapter->AddObserver(this); |
| + adapter_ = adapter; |
| + adapter_->AddObserver(this); |
| uuid_ = uuid; |
| options_.reset(new BluetoothProfileManagerClient::Options()); |
| @@ -221,12 +224,10 @@ void BluetoothSocketChromeOS::RegisterProfile( |
| DCHECK(!profile_); |
| DCHECK(adapter); |
|
Ilya Sherman
2015/02/21 01:22:10
Should you also DCHECK that adapter_ and adapter a
Marie Janssen
2015/02/23 17:49:10
we don't use adapter_ in this function anymore. t
Ilya Sherman
2015/02/24 05:26:06
I agree that |adapter_| isn't accessed, but should
Marie Janssen
2015/02/24 18:49:21
I mean from before this CL. Earlier patches moved
Ilya Sherman
2015/02/24 19:00:21
Per offline discussion, this CL is partially resto
|
| - adapter_ = adapter; |
| - |
| // If the adapter is not present, this is a listening socket and the |
| // adapter isn't running yet. Report success and carry on; |
| // the profile will be registered when the daemon becomes available. |
| - if (!adapter_->IsPresent()) { |
| + if (!adapter->IsPresent()) { |
| VLOG(1) << uuid_.canonical_value() << " on " << device_path_.value() |
| << ": Delaying profile registration."; |
| base::MessageLoop::current()->PostTask(FROM_HERE, success_callback); |
| @@ -549,20 +550,9 @@ void BluetoothSocketChromeOS::UnregisterProfile() { |
| VLOG(1) << profile_->object_path().value() << ": Release profile"; |
| - profile_->RemoveDelegate( |
| - device_path_, |
| - base::Bind(&BluetoothSocketChromeOS::ReleaseProfile, this, profile_)); |
| - |
| + static_cast<BluetoothAdapterChromeOS*>(adapter_.get()) |
| + ->ReleaseProfile(device_path_, profile_); |
|
Ilya Sherman
2015/02/21 01:22:10
Is it guaranteed that the adapter_ is non-null? I
Marie Janssen
2015/02/23 17:49:09
Here it is: if we have a profile to unregister at
Ilya Sherman
2015/02/24 05:26:06
You're probably right, as I do not know this code
Marie Janssen
2015/02/24 18:49:21
ReleaseProfile() was called asynchronously from a
Ilya Sherman
2015/02/24 19:00:21
Ok, that makes sense -- thanks!
|
| profile_ = nullptr; |
| } |
| -void BluetoothSocketChromeOS::ReleaseProfile( |
| - BluetoothAdapterProfileChromeOS* profile) { |
| - if (adapter_) |
| - static_cast<BluetoothAdapterChromeOS*>(adapter_.get()) |
| - ->ReleaseProfile(uuid_); |
| - else |
| - delete profile; |
| -} |
| - |
| } // namespace chromeos |