summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2012-02-08 07:45:15 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-02-08 07:45:15 -0800
commite616d4e6de6d53ddebbc3d7fb381af94589c2232 (patch)
treeec4258e62eeb8cc12077af1a8dae45b6b4f0d6cb /services
parentf22147e5d2982e0c461f7ce8058c2d596d518bd4 (diff)
parent090f01963e215f895020a31e22368cd44e086ce3 (diff)
downloadframeworks_av-e616d4e6de6d53ddebbc3d7fb381af94589c2232.zip
frameworks_av-e616d4e6de6d53ddebbc3d7fb381af94589c2232.tar.gz
frameworks_av-e616d4e6de6d53ddebbc3d7fb381af94589c2232.tar.bz2
Merge "Improve performance for sp<> on stack"
Diffstat (limited to 'services')
-rw-r--r--services/audioflinger/AudioFlinger.cpp49
1 files changed, 13 insertions, 36 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 1bd9517..cc16f37 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -1247,8 +1247,7 @@ void AudioFlinger::ThreadBase::setEffectSuspended(
void AudioFlinger::ThreadBase::setEffectSuspended_l(
const effect_uuid_t *type, bool suspend, int sessionId)
{
- sp<EffectChain> chain;
- chain = getEffectChain_l(sessionId);
+ sp<EffectChain> chain = getEffectChain_l(sessionId);
if (chain != 0) {
if (type != NULL) {
chain->setEffectSuspended_l(type, suspend);
@@ -5831,13 +5830,8 @@ Exit:
sp<AudioFlinger::EffectModule> AudioFlinger::ThreadBase::getEffect_l(int sessionId, int effectId)
{
- sp<EffectModule> effect;
-
sp<EffectChain> chain = getEffectChain_l(sessionId);
- if (chain != 0) {
- effect = chain->getEffectFromId_l(effectId);
- }
- return effect;
+ return chain != 0 ? chain->getEffectFromId_l(effectId) : 0;
}
// PlaybackThread::addEffect_l() must be called with AudioFlinger::mLock and
@@ -5922,16 +5916,13 @@ sp<AudioFlinger::EffectChain> AudioFlinger::ThreadBase::getEffectChain(int sessi
sp<AudioFlinger::EffectChain> AudioFlinger::ThreadBase::getEffectChain_l(int sessionId)
{
- sp<EffectChain> chain;
-
size_t size = mEffectChains.size();
for (size_t i = 0; i < size; i++) {
if (mEffectChains[i]->sessionId() == sessionId) {
- chain = mEffectChains[i];
- break;
+ return mEffectChains[i];
}
}
- return chain;
+ return 0;
}
void AudioFlinger::ThreadBase::setMode(audio_mode_t mode)
@@ -6264,11 +6255,7 @@ size_t AudioFlinger::EffectModule::removeHandle(const wp<EffectHandle>& handle)
sp<AudioFlinger::EffectHandle> AudioFlinger::EffectModule::controlHandle()
{
Mutex::Autolock _l(mLock);
- sp<EffectHandle> handle;
- if (mHandles.size() != 0) {
- handle = mHandles[0].promote();
- }
- return handle;
+ return mHandles.size() != 0 ? mHandles[0].promote() : 0;
}
void AudioFlinger::EffectModule::disconnect(const wp<EffectHandle>& handle, bool unpiniflast)
@@ -7145,48 +7132,42 @@ AudioFlinger::EffectChain::~EffectChain()
// getEffectFromDesc_l() must be called with ThreadBase::mLock held
sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectFromDesc_l(effect_descriptor_t *descriptor)
{
- sp<EffectModule> effect;
size_t size = mEffects.size();
for (size_t i = 0; i < size; i++) {
if (memcmp(&mEffects[i]->desc().uuid, &descriptor->uuid, sizeof(effect_uuid_t)) == 0) {
- effect = mEffects[i];
- break;
+ return mEffects[i];
}
}
- return effect;
+ return 0;
}
// getEffectFromId_l() must be called with ThreadBase::mLock held
sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectFromId_l(int id)
{
- sp<EffectModule> effect;
size_t size = mEffects.size();
for (size_t i = 0; i < size; i++) {
// by convention, return first effect if id provided is 0 (0 is never a valid id)
if (id == 0 || mEffects[i]->id() == id) {
- effect = mEffects[i];
- break;
+ return mEffects[i];
}
}
- return effect;
+ return 0;
}
// getEffectFromType_l() must be called with ThreadBase::mLock held
sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectFromType_l(
const effect_uuid_t *type)
{
- sp<EffectModule> effect;
size_t size = mEffects.size();
for (size_t i = 0; i < size; i++) {
if (memcmp(&mEffects[i]->desc().type, type, sizeof(effect_uuid_t)) == 0) {
- effect = mEffects[i];
- break;
+ return mEffects[i];
}
}
- return effect;
+ return 0;
}
// Must be called with EffectChain::mLock locked
@@ -7627,12 +7608,8 @@ void AudioFlinger::EffectChain::getSuspendEligibleEffects(Vector< sp<AudioFlinge
sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectIfEnabled(
const effect_uuid_t *type)
{
- sp<EffectModule> effect;
- effect = getEffectFromType_l(type);
- if (effect != 0 && !effect->isEnabled()) {
- effect.clear();
- }
- return effect;
+ sp<EffectModule> effect = getEffectFromType_l(type);
+ return effect != 0 && effect->isEnabled() ? effect : 0;
}
void AudioFlinger::EffectChain::checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,