Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f7d121a authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Merge cherrypicks of ['googleplex-android-review.googlesource.com/21546150',...

Merge cherrypicks of ['googleplex-android-review.googlesource.com/21546150', 'googleplex-android-review.googlesource.com/21546151', 'googleplex-android-review.googlesource.com/21546152'] into tm-qpr2-release.

Change-Id: I27e5de5cfa3fe903725dbc0e19150473ee2fedb0
parents 5a2cb3d1 455ada53
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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;
+6 −0
Original line number Diff line number Diff line
@@ -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;
}

+15 −0
Original line number Diff line number Diff line
@@ -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");
+1 −0
Original line number Diff line number Diff line
@@ -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);
+3 −0
Original line number Diff line number Diff line
@@ -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.