summaryrefslogtreecommitdiff
path: root/services/audioflinger/AudioMixer.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2012-01-09 10:25:00 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-01-09 10:25:00 -0800
commit879bc64e43d62f2690c77a3282cef2e45d1b76e9 (patch)
tree40952192d397dcff30df01558c68c11ef675cb7f /services/audioflinger/AudioMixer.cpp
parent5c7b3bcc88e2b472f1f7b416d89222714b96a567 (diff)
parent98dd542ffcd3424b1da58bd273c0c1ff5b8c8960 (diff)
Merge "Replace loop by __builtin_ctz"
Diffstat (limited to 'services/audioflinger/AudioMixer.cpp')
-rw-r--r--services/audioflinger/AudioMixer.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
index 36cdeb85..bc5cb9b7 100644
--- a/services/audioflinger/AudioMixer.cpp
+++ b/services/audioflinger/AudioMixer.cpp
@@ -95,16 +95,11 @@ AudioMixer::~AudioMixer()
int AudioMixer::getTrackName()
{
- uint32_t names = mTrackNames;
- uint32_t mask = 1;
- int n = 0;
- while (names & mask) {
- mask <<= 1;
- n++;
- }
- if (mask) {
+ uint32_t names = ~mTrackNames;
+ if (names != 0) {
+ int n = __builtin_ctz(names);
ALOGV("add track (%d)", n);
- mTrackNames |= mask;
+ mTrackNames |= 1 << n;
return TRACK0 + n;
}
return -1;