Merge "For performance, return large objects by reference"
This commit is contained in:
@@ -7561,7 +7561,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);
|
||||
}
|
||||
@@ -7612,16 +7613,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(
|
||||
|
||||
@@ -1327,7 +1327,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
|
||||
|
||||
Reference in New Issue
Block a user