summaryrefslogtreecommitdiff
path: root/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-04-21 19:56:55 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-04-21 19:56:55 +0000
commitddd0cff3eb5acdc581c8f6f5b36b1bf8b90c8bed (patch)
tree77daebc4c4c41dae651a3425504a52dd1ccc21b1 /service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
parentcad0938b23a933110df171fb7c9f96721f606cd2 (diff)
parent1879ee137ede0d62b88cd16da3d46138ca540dfa (diff)
downloadImsMedia-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.cpp35
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)