From 9704026ccb9a2d10c168fbd244361faec84c7263 Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Mon, 30 Jan 2012 12:56:03 -0800 Subject: [PATCH] For performance, return large objects by reference Change-Id: Ibf737018ef1d3c7d717584615dcb2d4ecdb50c99 --- services/audioflinger/AudioFlinger.cpp | 13 ++++++------- services/audioflinger/AudioFlinger.h | 3 ++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 2d856ada405dd..09d79542bd64c 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -7551,7 +7551,8 @@ void AudioFlinger::EffectChain::setEffectSuspendedAll_l(bool suspend) ALOGV("setEffectSuspendedAll_l() add entry for 0"); } if (desc->mRefCount++ == 0) { - Vector< sp > effects = getSuspendEligibleEffects(); + Vector< sp > 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::EffectChain::getSuspendEligibleEffects() +void AudioFlinger::EffectChain::getSuspendEligibleEffects(Vector< sp > &effects) { - Vector< sp > 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::EffectChain::getEffectIfEnabled( diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 766ba44343bb9..16048c85426ea 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -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 > getSuspendEligibleEffects(); + void getSuspendEligibleEffects(Vector< sp > &effects); + // get an effect module if it is currently enable sp getEffectIfEnabled(const effect_uuid_t *type); // true if the effect whose descriptor is passed can be suspended