Loading libs/sensor/ISensorServer.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -66,7 +66,11 @@ public: v.setCapacity(n); while (n) { n--; reply.read(s); if(reply.read(s) != OK) { ALOGE("Failed to read reply from getSensorList"); v.clear(); break; } v.add(s); } return v; Loading @@ -84,7 +88,11 @@ public: v.setCapacity(n); while (n) { n--; reply.read(s); if(reply.read(s) != OK) { ALOGE("Failed to read reply from getDynamicSensorList"); v.clear(); break; } v.add(s); } return v; Loading libs/sensor/Sensor.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -632,7 +632,13 @@ bool Sensor::unflattenString8(void const*& buffer, size_t& size, String8& output return false; } outputString8.setTo(static_cast<char const*>(buffer), len); if (size < FlattenableUtils::align<4>(len)) { ALOGE("Malformed Sensor String8 field. Should be in a 4-byte aligned buffer but is not."); return false; } FlattenableUtils::advance(buffer, size, FlattenableUtils::align<4>(len)); return true; } Loading libs/sensor/SensorManager.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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"); Loading libs/sensor/include/sensor/SensorManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ class SensorManager : public ASensorManager { public: static SensorManager& getInstanceForPackage(const String16& packageName); static void removeInstanceForPackage(const String16& packageName); ~SensorManager(); ssize_t getSensorList(Sensor const* const** list); Loading services/sensorservice/hidl/SensorManager.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,9 @@ SensorManager::~SensorManager() { if (mPollThread.joinable()) { mPollThread.join(); } ::android::SensorManager::removeInstanceForPackage( String16(ISensorManager::descriptor)); } // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager follow. Loading Loading
libs/sensor/ISensorServer.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -66,7 +66,11 @@ public: v.setCapacity(n); while (n) { n--; reply.read(s); if(reply.read(s) != OK) { ALOGE("Failed to read reply from getSensorList"); v.clear(); break; } v.add(s); } return v; Loading @@ -84,7 +88,11 @@ public: v.setCapacity(n); while (n) { n--; reply.read(s); if(reply.read(s) != OK) { ALOGE("Failed to read reply from getDynamicSensorList"); v.clear(); break; } v.add(s); } return v; Loading
libs/sensor/Sensor.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -632,7 +632,13 @@ bool Sensor::unflattenString8(void const*& buffer, size_t& size, String8& output return false; } outputString8.setTo(static_cast<char const*>(buffer), len); if (size < FlattenableUtils::align<4>(len)) { ALOGE("Malformed Sensor String8 field. Should be in a 4-byte aligned buffer but is not."); return false; } FlattenableUtils::advance(buffer, size, FlattenableUtils::align<4>(len)); return true; } Loading
libs/sensor/SensorManager.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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"); Loading
libs/sensor/include/sensor/SensorManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ class SensorManager : public ASensorManager { public: static SensorManager& getInstanceForPackage(const String16& packageName); static void removeInstanceForPackage(const String16& packageName); ~SensorManager(); ssize_t getSensorList(Sensor const* const** list); Loading
services/sensorservice/hidl/SensorManager.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,9 @@ SensorManager::~SensorManager() { if (mPollThread.joinable()) { mPollThread.join(); } ::android::SensorManager::removeInstanceForPackage( String16(ISensorManager::descriptor)); } // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager follow. Loading