diff options
author | Srinu Jella <sjella@codeaurora.org> | 2015-03-09 17:44:04 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-03-11 10:21:04 -0700 |
commit | ea6eec14f2fe78d5eb09ee39a4a9e896b2fca61d (patch) | |
tree | dc56e0209249ab3972aa3f76687ee3d71145acaa /src | |
parent | 4b4d8147e1a58f20ac8b39d1e78b623d8f38633d (diff) | |
download | android_packages_apps_Bluetooth-ea6eec14f2fe78d5eb09ee39a4a9e896b2fca61d.tar.gz android_packages_apps_Bluetooth-ea6eec14f2fe78d5eb09ee39a4a9e896b2fca61d.tar.bz2 android_packages_apps_Bluetooth-ea6eec14f2fe78d5eb09ee39a4a9e896b2fca61d.zip |
Bluetooth: Avoid cleanup the scan manager if already cleaned up
- Avoid cleanup the scan manager if already cleaned up, scan
manager can be cleared on receiving the stop request or
when the service is destroyed.
- There is a case, where destroy and stop called one after
the other, it will try to cleanup twice, that leads to
crash.
CRs-Fixed: 797597
Change-Id: I0adc5cb683bbf47f12598e6c54eae7df87cdbbc4
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/bluetooth/gatt/GattService.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/com/android/bluetooth/gatt/GattService.java b/src/com/android/bluetooth/gatt/GattService.java index 654df69b9..05ff17a7d 100644 --- a/src/com/android/bluetooth/gatt/GattService.java +++ b/src/com/android/bluetooth/gatt/GattService.java @@ -198,16 +198,28 @@ public class GattService extends ProfileService { mServiceDeclarations.clear(); mActiveServiceDeclarations.clear(); mReliableQueue.clear(); - if (mAdvertiseManager != null) mAdvertiseManager.cleanup(); - if (mScanManager != null) mScanManager.cleanup(); + if (mAdvertiseManager != null) { + mAdvertiseManager.cleanup(); + mAdvertiseManager = null; + } + if (mScanManager != null) { + mScanManager.cleanup(); + mScanManager = null; + } return true; } protected boolean cleanup() { if (DBG) Log.d(TAG, "cleanup()"); cleanupNative(); - if (mAdvertiseManager != null) mAdvertiseManager.cleanup(); - if (mScanManager != null) mScanManager.cleanup(); + if (mAdvertiseManager != null) { + mAdvertiseManager.cleanup(); + mAdvertiseManager = null; + } + if (mScanManager != null) { + mScanManager.cleanup(); + mScanManager = null; + } return true; } |