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

Commit d0f27f43 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android Git Automerger
Browse files

am ada1b6f2: Merge "fix [3421350] Killing a game that uses the accelerometer...

am ada1b6f2: Merge "fix [3421350] Killing a game that uses the accelerometer renders the device unable to sleep" into gingerbread

* commit 'ada1b6f2':
  fix [3421350] Killing a game that uses the accelerometer renders the device unable to sleep
parents b605869c ada1b6f2
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -293,18 +293,21 @@ sp<ISensorEventConnection> SensorService::createSensorEventConnection()
    return result;
}

void SensorService::cleanupConnection(const wp<SensorEventConnection>& connection)
void SensorService::cleanupConnection(SensorEventConnection* c)
{
    Mutex::Autolock _l(mLock);
    const wp<SensorEventConnection> connection(c);
    size_t size = mActiveSensors.size();
    for (size_t i=0 ; i<size ; ) {
        SensorRecord* rec = mActiveSensors.valueAt(i);
        if (rec && rec->removeConnection(connection)) {
        int handle = mActiveSensors.keyAt(i);
        if (c->hasSensor(handle)) {
            SensorInterface* sensor = mSensorMap.valueFor( handle );
            if (sensor) {
                sensor->activate(connection.unsafe_get(), false);
                sensor->activate(c, false);
            }
        }
        SensorRecord* rec = mActiveSensors.valueAt(i);
        if (rec && rec->removeConnection(connection)) {
            mActiveSensors.removeItemsAt(i, 1);
            mActiveVirtualSensors.removeItem(handle);
            delete rec;
+1 −1
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ class SensorService :
public:
    static char const* getServiceName() { return "sensorservice"; }

    void cleanupConnection(const wp<SensorEventConnection>& connection);
    void cleanupConnection(SensorEventConnection* connection);
    status_t enable(const sp<SensorEventConnection>& connection, int handle);
    status_t disable(const sp<SensorEventConnection>& connection, int handle);
    status_t setEventRate(const sp<SensorEventConnection>& connection, int handle, nsecs_t ns);