Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9704026c authored by Glenn Kasten's avatar Glenn Kasten
Browse files

For performance, return large objects by reference

Change-Id: Ibf737018ef1d3c7d717584615dcb2d4ecdb50c99
parent acabf488
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -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]);
        }
    return effects;
    }
}

sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectIfEnabled(
+2 −1
Original line number Diff line number Diff line
@@ -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