diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-11-06 01:07:13 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-11-06 01:07:13 +0000 |
commit | 02cffb0d6b30458fbc69c11c73f35e87fbaebf72 (patch) | |
tree | 94db486a042c231509a1f4b7463b2f56081434e5 | |
parent | f7a948d700e6180349338cc5410199ada2cf28ba (diff) | |
parent | 24ead9d84a9d9ef077f4d44995e2add9a79a206d (diff) | |
download | libhardware-02cffb0d6b30458fbc69c11c73f35e87fbaebf72.tar.gz |
Snap for 7889170 from 24ead9d84a9d9ef077f4d44995e2add9a79a206d to sc-v2-release
Change-Id: I7b33f68f6ea4aaf8b69310a2db593146f8de6aa4
-rw-r--r-- | modules/sensors/dynamic_sensor/DynamicSensorManager.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/modules/sensors/dynamic_sensor/DynamicSensorManager.h b/modules/sensors/dynamic_sensor/DynamicSensorManager.h index 634c5234..264582ec 100644 --- a/modules/sensors/dynamic_sensor/DynamicSensorManager.h +++ b/modules/sensors/dynamic_sensor/DynamicSensorManager.h @@ -95,15 +95,18 @@ private: // TF: int foo(sp<BaseSensorObject> obj); template <typename TF> int operateSensor(int handle, TF f) const { - std::lock_guard<std::mutex> lk(mLock); - const auto i = mMap.find(handle); - if (i == mMap.end()) { - return BAD_VALUE; - } - sp<BaseSensorObject> s = i->second.promote(); - if (s == nullptr) { - // sensor object is already gone - return BAD_VALUE; + sp<BaseSensorObject> s; + { + std::lock_guard<std::mutex> lk(mLock); + const auto i = mMap.find(handle); + if (i == mMap.end()) { + return BAD_VALUE; + } + s = i->second.promote(); + if (s == nullptr) { + // sensor object is already gone + return BAD_VALUE; + } } return f(s); } |