Skip to content

Commit

Permalink
SoundTrigger: get service by value.
Browse files Browse the repository at this point in the history
Get strong pointer to service interface by value and not reference to
prevent race conditions where the service pointer can be cleared
by another thread while in use.

Bug: 30907212
Change-Id: I6f02ec3fd1e6392b842b334e1cc4f9aa23916009
(cherry picked from commit 3b01b30)
  • Loading branch information
Eric Laurent authored and gitbuildkicker committed Sep 27, 2016
1 parent ace612c commit d8cf9aa
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion include/soundtrigger/SoundTrigger.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class SoundTrigger : public BnSoundTriggerClient,
private:
SoundTrigger(sound_trigger_module_handle_t module,
const sp<SoundTriggerCallback>&);
static const sp<ISoundTriggerHwService>& getSoundTriggerHwService();
static const sp<ISoundTriggerHwService> getSoundTriggerHwService();

Mutex mLock;
sp<ISoundTrigger> mISoundTrigger;
Expand Down
8 changes: 4 additions & 4 deletions soundtrigger/SoundTrigger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ namespace {
sp<DeathNotifier> gDeathNotifier;
}; // namespace anonymous

const sp<ISoundTriggerHwService>& SoundTrigger::getSoundTriggerHwService()
const sp<ISoundTriggerHwService> SoundTrigger::getSoundTriggerHwService()
{
Mutex::Autolock _l(gLock);
if (gSoundTriggerHwService.get() == 0) {
Expand Down Expand Up @@ -84,7 +84,7 @@ status_t SoundTrigger::listModules(struct sound_trigger_module_descriptor *modul
uint32_t *numModules)
{
ALOGV("listModules()");
const sp<ISoundTriggerHwService>& service = getSoundTriggerHwService();
const sp<ISoundTriggerHwService> service = getSoundTriggerHwService();
if (service == 0) {
return NO_INIT;
}
Expand All @@ -96,7 +96,7 @@ sp<SoundTrigger> SoundTrigger::attach(const sound_trigger_module_handle_t module
{
ALOGV("attach()");
sp<SoundTrigger> soundTrigger;
const sp<ISoundTriggerHwService>& service = getSoundTriggerHwService();
const sp<ISoundTriggerHwService> service = getSoundTriggerHwService();
if (service == 0) {
return soundTrigger;
}
Expand All @@ -116,7 +116,7 @@ sp<SoundTrigger> SoundTrigger::attach(const sound_trigger_module_handle_t module
status_t SoundTrigger::setCaptureState(bool active)
{
ALOGV("setCaptureState(%d)", active);
const sp<ISoundTriggerHwService>& service = getSoundTriggerHwService();
const sp<ISoundTriggerHwService> service = getSoundTriggerHwService();
if (service == 0) {
return NO_INIT;
}
Expand Down

0 comments on commit d8cf9aa

Please sign in to comment.