Commits


Joshua Bartel authored and Mike Lockwood committed 080b61ba170
LocationManagerService: Fix race when removing LocationListener In LocationManagerService if a LocationListener is removed while it has a pending broadcast the wake lock held while pending broadcasts are outstanding do not get cleared properly. There are 2 cases of this race that are fixed: 1. locationCallbackFinished was changed to check the mReceivers HashMap directly instead of calling getReceiver. getReceiver would add the ILocationListener as a new Receiver if it did not exist which caused a receiver that was removed when it still had a broadcast pending to be added back in a bad state when the pending broadcast completed. 2. removeUpdatesLocked was changed to decrement the pending broadcasts when a Receiver is removed that has pending broadcasts. Fixes bug b/2163871 Change-Id: I50a321c9b3359bf69845236dc4a4b9e38e847335 Signed-off-by: Mike Lockwood <lockwood@android.com>