For performance, return large objects by reference

Change-Id: Ibf737018ef1d3c7d717584615dcb2d4ecdb50c99
This commit is contained in:
Glenn Kasten
2012-01-30 12:56:03 -08:00
parent acabf48867
commit 9704026ccb
2 changed files with 8 additions and 8 deletions

View File

@@ -7551,7 +7551,8 @@ void AudioFlinger::EffectChain::setEffectSuspendedAll_l(bool suspend)
ALOGV("setEffectSuspendedAll_l() add entry for 0");
}
if (desc->mRefCount++ == 0) {
Vector< sp<EffectModule> > effects = getSuspendEligibleEffects();
Vector< sp<EffectModule> > effects;
getSuspendEligibleEffects(effects);
for (size_t i = 0; i < effects.size(); i++) {
setEffectSuspended_l(&effects[i]->desc().type, true);
}
@@ -7602,16 +7603,14 @@ bool AudioFlinger::EffectChain::isEffectEligibleForSuspend(const effect_descript
return true;
}
Vector< sp<AudioFlinger::EffectModule> > AudioFlinger::EffectChain::getSuspendEligibleEffects()
void AudioFlinger::EffectChain::getSuspendEligibleEffects(Vector< sp<AudioFlinger::EffectModule> > &effects)
{
Vector< sp<EffectModule> > effects;
effects.clear();
for (size_t i = 0; i < mEffects.size(); i++) {
if (!isEffectEligibleForSuspend(mEffects[i]->desc())) {
continue;
if (isEffectEligibleForSuspend(mEffects[i]->desc())) {
effects.add(mEffects[i]);
}
effects.add(mEffects[i]);
}
return effects;
}
sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectIfEnabled(

View File

@@ -1325,7 +1325,8 @@ mutable Mutex mLock; // mutex for process, commands and handl
// get a list of effect modules to suspend when an effect of the type
// passed is enabled.
Vector< sp<EffectModule> > getSuspendEligibleEffects();
void getSuspendEligibleEffects(Vector< sp<EffectModule> > &effects);
// get an effect module if it is currently enable
sp<EffectModule> getEffectIfEnabled(const effect_uuid_t *type);
// true if the effect whose descriptor is passed can be suspended