diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-04-21 19:56:55 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-04-21 19:56:55 +0000 |
commit | ddd0cff3eb5acdc581c8f6f5b36b1bf8b90c8bed (patch) | |
tree | 77daebc4c4c41dae651a3425504a52dd1ccc21b1 /service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp | |
parent | cad0938b23a933110df171fb7c9f96721f606cd2 (diff) | |
parent | 1879ee137ede0d62b88cd16da3d46138ca540dfa (diff) | |
download | ImsMedia-ddd0cff3eb5acdc581c8f6f5b36b1bf8b90c8bed.tar.gz |
Snap for 9989322 from 1879ee137ede0d62b88cd16da3d46138ca540dfa to mainline-rkpd-release
Change-Id: I35046c7ba53f650c5d42314f226f1df5b7cd8dc1
Diffstat (limited to 'service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp')
-rw-r--r-- | service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp index cba37f55..91d69581 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp @@ -40,15 +40,17 @@ void ImsMediaBitWriter::SetBuffer(uint8_t* pbBuffer, uint32_t nBufferSize) mMaxBufferSize = nBufferSize; } -void ImsMediaBitWriter::Write(uint32_t nValue, uint32_t nSize) +bool ImsMediaBitWriter::Write(uint32_t nValue, uint32_t nSize) { if (nSize == 0) - return; + { + return false; + } if (mBuffer == nullptr || nSize > 24 || mBufferFull) { IMLOGE2("[Write] nSize[%d], BufferFull[%d]", nSize, mBufferFull); - return; + return false; } // write to bit buffer @@ -67,9 +69,11 @@ void ImsMediaBitWriter::Write(uint32_t nValue, uint32_t nSize) { mBufferFull = true; } + + return true; } -void ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize) +bool ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize) { uint32_t nByteSize; uint32_t nRemainBitSize; @@ -87,7 +91,10 @@ void ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize) for (i = 0; i < nByteSize; i++) { - Write(pbSrc[i], 8); + if (!Write(pbSrc[i], 8)) + { + return false; + } } } @@ -95,11 +102,17 @@ void ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize) { uint32_t v = pbSrc[nByteSize]; v >>= (8 - nRemainBitSize); - Write(v, nRemainBitSize); + + if (!Write(v, nRemainBitSize)) + { + return false; + } } + + return true; } -void ImsMediaBitWriter::WriteByteBuffer(uint32_t value) +bool ImsMediaBitWriter::WriteByteBuffer(uint32_t value) { uint32_t nRemainBitSize = 32; @@ -107,8 +120,14 @@ void ImsMediaBitWriter::WriteByteBuffer(uint32_t value) { nRemainBitSize -= 8; uint8_t v = (value >> nRemainBitSize) & 0x00ff; - Write(v, 8); + + if (!Write(v, 8)) + { + return false; + } } + + return true; } void ImsMediaBitWriter::Seek(uint32_t nSize) |