diff options
author | Glenn Kasten <gkasten@google.com> | 2014-03-07 02:30:11 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-03-07 02:30:11 +0000 |
commit | b8d0b780c9ae160b830cc7a31b22600293e4978b (patch) | |
tree | 9ea56a5014c7ac2a029cb7668319bd837b837f4c /include | |
parent | 328ab3c21c185a7541e7ee087a61e18f6888af1c (diff) | |
parent | af191eb4feac513d17dc0362e0cea5bc9e0ffe9d (diff) | |
download | frameworks_av-b8d0b780c9ae160b830cc7a31b22600293e4978b.zip frameworks_av-b8d0b780c9ae160b830cc7a31b22600293e4978b.tar.gz frameworks_av-b8d0b780c9ae160b830cc7a31b22600293e4978b.tar.bz2 |
am af191eb4: Merge "Replace size_t in shared memory by uint32_t"
* commit 'af191eb4feac513d17dc0362e0cea5bc9e0ffe9d':
Replace size_t in shared memory by uint32_t
Diffstat (limited to 'include')
-rw-r--r-- | include/private/media/AudioTrackShared.h | 14 | ||||
-rw-r--r-- | include/private/media/StaticAudioTrackState.h | 10 |
2 files changed, 18 insertions, 6 deletions
diff --git a/include/private/media/AudioTrackShared.h b/include/private/media/AudioTrackShared.h index 7fd9379..2d033e6 100644 --- a/include/private/media/AudioTrackShared.h +++ b/include/private/media/AudioTrackShared.h @@ -65,7 +65,9 @@ typedef SingleStateQueue<StaticAudioTrackState> StaticAudioTrackSingleStateQueue struct AudioTrackSharedStatic { StaticAudioTrackSingleStateQueue::Shared mSingleStateQueue; - size_t mBufferPosition; // updated asynchronously by server, + // This field should be a size_t, but since it is located in shared memory we + // force to 32-bit. The client and server may have different typedefs for size_t. + uint32_t mBufferPosition; // updated asynchronously by server, // "for entertainment purposes only" }; @@ -108,7 +110,9 @@ struct audio_track_cblk_t private: - size_t mMinimum; // server wakes up client if available >= mMinimum + // This field should be a size_t, but since it is located in shared memory we + // force to 32-bit. The client and server may have different typedefs for size_t. + uint32_t mMinimum; // server wakes up client if available >= mMinimum // Channel volumes are fixed point U4.12, so 0x1000 means 1.0. // Left channel is in [0:15], right channel is in [16:31]. @@ -245,7 +249,11 @@ public: } void setMinimum(size_t minimum) { - mCblk->mMinimum = minimum; + // This can only happen on a 64-bit client + if (minimum > UINT32_MAX) { + minimum = UINT32_MAX; + } + mCblk->mMinimum = (uint32_t) minimum; } // Return the number of frames that would need to be obtained and released diff --git a/include/private/media/StaticAudioTrackState.h b/include/private/media/StaticAudioTrackState.h index 46a5946..d483061 100644 --- a/include/private/media/StaticAudioTrackState.h +++ b/include/private/media/StaticAudioTrackState.h @@ -25,9 +25,13 @@ namespace android { // state is wrapped by a SingleStateQueue. struct StaticAudioTrackState { // do not define constructors, destructors, or virtual methods - size_t mLoopStart; - size_t mLoopEnd; - int mLoopCount; + + // These fields should both be size_t, but since they are located in shared memory we + // force to 32-bit. The client and server may have different typedefs for size_t. + uint32_t mLoopStart; + uint32_t mLoopEnd; + + int mLoopCount; }; } // namespace android |