summaryrefslogtreecommitdiff
path: root/service/src/com/android/telephony
diff options
context:
space:
mode:
authorBodam Nam <bodamnam@google.com>2023-04-03 23:39:14 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-04-03 23:39:14 +0000
commit475cf479c2ee232bb9b42b9de437e78c853cd4e9 (patch)
tree3e8c3ee1e71d4351dbf8088633b795d8950e8ca1 /service/src/com/android/telephony
parentb57f1978a9c13d465a243f3ba59e3274c52c257f (diff)
parent2229812bc19cb445198e186b44c8338f201976c3 (diff)
downloadImsMedia-475cf479c2ee232bb9b42b9de437e78c853cd4e9.tar.gz
Merge "Add unit test for ImsMediaBitWriter/Reader" into udc-dev
Diffstat (limited to 'service/src/com/android/telephony')
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h6
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp35
2 files changed, 30 insertions, 11 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h
index e4aa8ea9..693b2f5c 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h
@@ -25,9 +25,9 @@ public:
ImsMediaBitWriter();
~ImsMediaBitWriter();
void SetBuffer(uint8_t* pbBuffer, uint32_t nBufferSize);
- void Write(uint32_t nValue, uint32_t nSize);
- void WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize);
- void WriteByteBuffer(uint32_t value);
+ bool Write(uint32_t nValue, uint32_t nSize);
+ bool WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize);
+ bool WriteByteBuffer(uint32_t value);
void Seek(uint32_t nSize);
void AddPadding();
uint32_t GetBufferSize();
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)