Merge "fix [3421350] Killing a game that uses the accelerometer renders the device unable to sleep" into honeycomb
This commit is contained in:
committed by
Android (Google) Code Review
commit
33e9cb47d2
@ -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;
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user