diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-01 09:57:24 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-01 09:57:24 -0700 |
commit | 450ad31b62af468aa0fb308a5c983b8f8334ae4e (patch) | |
tree | 43c979a2e1cb807afcb08f44c49a566d5629715d /media/jni/soundpool | |
parent | 10d273bb69016f7eb056d7ea1f3a929a5f5a3314 (diff) | |
parent | 3c8704b171c812dde6f48e5416ba0b336470dd4a (diff) | |
download | frameworks_base-450ad31b62af468aa0fb308a5c983b8f8334ae4e.zip frameworks_base-450ad31b62af468aa0fb308a5c983b8f8334ae4e.tar.gz frameworks_base-450ad31b62af468aa0fb308a5c983b8f8334ae4e.tar.bz2 |
Merge change 2774 into donut
* changes:
Limit check on maxChannels for SoundPool. Bug 1838724
Diffstat (limited to 'media/jni/soundpool')
-rw-r--r-- | media/jni/soundpool/SoundPool.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/media/jni/soundpool/SoundPool.cpp b/media/jni/soundpool/SoundPool.cpp index 0812650..ce80f92 100644 --- a/media/jni/soundpool/SoundPool.cpp +++ b/media/jni/soundpool/SoundPool.cpp @@ -44,23 +44,27 @@ SoundPool::SoundPool(jobject soundPoolRef, int maxChannels, int streamType, int LOGV("SoundPool constructor: maxChannels=%d, streamType=%d, srcQuality=%d", maxChannels, streamType, srcQuality); - if (maxChannels > 32) { - LOGW("App requested %d channels, capped at 32", maxChannels); - maxChannels = 32; + // check limits + mMaxChannels = maxChannels; + if (mMaxChannels < 1) { + mMaxChannels = 1; + } + else if (mMaxChannels > 32) { + mMaxChannels = 32; } + LOGW_IF(maxChannels != mMaxChannels, "App requested %d channels", maxChannels); mQuit = false; mSoundPoolRef = soundPoolRef; mDecodeThread = 0; - mMaxChannels = maxChannels; mStreamType = streamType; mSrcQuality = srcQuality; mAllocated = 0; mNextSampleID = 0; mNextChannelID = 0; - mChannelPool = new SoundChannel[maxChannels]; - for (int i = 0; i < maxChannels; ++i) { + mChannelPool = new SoundChannel[mMaxChannels]; + for (int i = 0; i < mMaxChannels; ++i) { mChannelPool[i].init(this); mChannels.push_back(&mChannelPool[i]); } |