summaryrefslogtreecommitdiff
path: root/libs/sensor/SensorManager.cpp
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-04-04 18:45:53 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-04-04 18:45:53 +0000
commit76de441808c86136cc7928aeac9677bd3a8a349a (patch)
tree27029f26bebd016dcd3e7b76b82a5c1afb96b908 /libs/sensor/SensorManager.cpp
parent81672f23cbceb684e5690dafb3ef96e551ef5fe4 (diff)
parent802c747f0c1d9490431c27f3a39a0d10ac4d1899 (diff)
Snap for 9839160 from 802c747f0c1d9490431c27f3a39a0d10ac4d1899 to tm-platform-release
Change-Id: Ic39edc2c6308ba21bbd4c2768c156dc09b0121e7
Diffstat (limited to 'libs/sensor/SensorManager.cpp')
-rw-r--r--libs/sensor/SensorManager.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/sensor/SensorManager.cpp b/libs/sensor/SensorManager.cpp
index 0ba9704263..40061cde61 100644
--- a/libs/sensor/SensorManager.cpp
+++ b/libs/sensor/SensorManager.cpp
@@ -92,6 +92,16 @@ SensorManager& SensorManager::getInstanceForPackage(const String16& packageName)
return *sensorManager;
}
+void SensorManager::removeInstanceForPackage(const String16& packageName) {
+ Mutex::Autolock _l(sLock);
+ auto iterator = sPackageInstances.find(packageName);
+ if (iterator != sPackageInstances.end()) {
+ SensorManager* sensorManager = iterator->second;
+ delete sensorManager;
+ sPackageInstances.erase(iterator);
+ }
+}
+
SensorManager::SensorManager(const String16& opPackageName)
: mSensorList(nullptr), mOpPackageName(opPackageName), mDirectConnectionHandle(1) {
Mutex::Autolock _l(mLock);
@@ -166,6 +176,11 @@ status_t SensorManager::assertStateLocked() {
mSensors = mSensorServer->getSensorList(mOpPackageName);
size_t count = mSensors.size();
+ if (count == 0) {
+ ALOGE("Failed to get Sensor list");
+ mSensorServer.clear();
+ return UNKNOWN_ERROR;
+ }
mSensorList =
static_cast<Sensor const**>(malloc(count * sizeof(Sensor*)));
LOG_ALWAYS_FATAL_IF(mSensorList == nullptr, "mSensorList NULL");