diff options
author | Eric Laurent <elaurent@google.com> | 2016-09-07 16:58:39 -0700 |
---|---|---|
committer | gitbuildkicker <android-build@google.com> | 2016-09-27 15:56:39 -0700 |
commit | 128035617a8cafd4ea717ceb8d6fe56564b07262 (patch) | |
tree | 0aa249d9b19353076b2b85e7fa24eb8b3cc29dd9 /radio | |
parent | d8cf9aa813be5363fb5425b4f818a267edd5e750 (diff) | |
download | frameworks_av-128035617a8cafd4ea717ceb8d6fe56564b07262.zip frameworks_av-128035617a8cafd4ea717ceb8d6fe56564b07262.tar.gz frameworks_av-128035617a8cafd4ea717ceb8d6fe56564b07262.tar.bz2 |
Radio: get service by value.
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: Iae838b3b672562c1d0cd63968399a6bfdda7f5ab
(cherry picked from commit 28a0e9ec74e5192aacffb279c80619ef284062b0)
Diffstat (limited to 'radio')
-rw-r--r-- | radio/Radio.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/radio/Radio.cpp b/radio/Radio.cpp index e3554c2..3c04fb0 100644 --- a/radio/Radio.cpp +++ b/radio/Radio.cpp @@ -55,7 +55,7 @@ namespace { sp<DeathNotifier> gDeathNotifier; }; // namespace anonymous -const sp<IRadioService>& Radio::getRadioService() +const sp<IRadioService> Radio::getRadioService() { Mutex::Autolock _l(gLock); if (gRadioService.get() == 0) { @@ -84,7 +84,7 @@ status_t Radio::listModules(struct radio_properties *properties, uint32_t *numModules) { ALOGV("listModules()"); - const sp<IRadioService>& service = getRadioService(); + const sp<IRadioService> service = getRadioService(); if (service == 0) { return NO_INIT; } @@ -98,7 +98,7 @@ sp<Radio> Radio::attach(radio_handle_t handle, { ALOGV("attach()"); sp<Radio> radio; - const sp<IRadioService>& service = getRadioService(); + const sp<IRadioService> service = getRadioService(); if (service == 0) { return radio; } |