summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrinu Jella <sjella@codeaurora.org>2015-03-09 17:44:04 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2015-03-11 10:21:04 -0700
commitea6eec14f2fe78d5eb09ee39a4a9e896b2fca61d (patch)
treedc56e0209249ab3972aa3f76687ee3d71145acaa
parent4b4d8147e1a58f20ac8b39d1e78b623d8f38633d (diff)
downloadandroid_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
-rw-r--r--src/com/android/bluetooth/gatt/GattService.java20
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;
}