aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Kluchnikov <kluchnikovi@gmail.com>2012-04-11 22:02:15 +0400
committerIvan Kluchnikov <kluchnikovi@gmail.com>2012-04-11 22:02:15 +0400
commit74b459fda4c75bb0483c835d07a64863efa83526 (patch)
tree7adde57f13d3306648e6bf564517a5c62e72c19b
parent1efac073e8853ca34a2027acc048cc6f2c620790 (diff)
Fixed: We should use guint8 array instead of guint32 and guint64 variables for decoding and encoding CSN1 bitmap.
-rw-r--r--csn1.cpp40
1 files changed, 26 insertions, 14 deletions
diff --git a/csn1.cpp b/csn1.cpp
index 8dbbde4d..0e34ec24 100644
--- a/csn1.cpp
+++ b/csn1.cpp
@@ -437,17 +437,23 @@ csnStreamDecoder(csnStream_t* ar, const CSN_DESCR* pDescr, BitVector *vector, si
if (no_of_bits <= 32)
{
- guint32 ui32 = vector->readField(readIndex, no_of_bits);
- pui32 = pui32DATA(data, pDescr->offset);
- *pui32 = ui32;
- LOG(INFO) << pDescr->sz << " = " << *pui32 << "\n";
+ for(unsigned ib = 0; ib < 4; ib++)
+ {
+ guint8 ui8 = vector->readField(readIndex, 8);
+ pui8 = pui8DATA(data, pDescr->offset+ib);
+ *pui8 = ui8;
+ LOG(INFO) << pDescr->sz <<"[" << ib << "]= " << (unsigned)*pui8 << "\n";
+ }
}
else if (no_of_bits <= 64)
{
- guint64 ui64 = vector->readField(readIndex, no_of_bits);
- pui64 = pui64DATA(data, pDescr->offset);
- *pui64 = ui64;
- LOG(INFO) << pDescr->sz << " = " << *pui64 << "\n";
+ for(unsigned ib = 0; ib < 8; ib++)
+ {
+ guint8 ui8 = vector->readField(readIndex, 8);
+ pui8 = pui8DATA(data, pDescr->offset+ib);
+ *pui8 = ui8;
+ LOG(INFO) << pDescr->sz <<"[" << ib << "]= " << (unsigned)*pui8 << "\n";
+ }
}
else
{
@@ -1659,15 +1665,21 @@ gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, BitVector *vec
if (no_of_bits <= 32)
{
- pui32 = pui32DATA(data, pDescr->offset);
- vector->writeField(writeIndex, *pui32, no_of_bits);
- LOG(INFO) << pDescr->sz << " = " << *pui32 << "\n";
+ for(unsigned ib = 0; ib < 4; ib++)
+ {
+ pui8 = pui8DATA(data, pDescr->offset+ib);
+ vector->writeField(writeIndex, *pui8, 8);
+ LOG(INFO) << pDescr->sz <<"[" << ib << "]= " << (unsigned)*pui8 << "\n";
+ }
}
else if (no_of_bits <= 64)
{
- pui64 = pui64DATA(data, pDescr->offset);
- vector->writeField(writeIndex, *pui64, no_of_bits);
- LOG(INFO) << pDescr->sz << " = " << *pui64 << "\n";
+ for(unsigned ib = 0; ib < 8; ib++)
+ {
+ pui8 = pui8DATA(data, pDescr->offset+ib);
+ vector->writeField(writeIndex, *pui8, 8);
+ LOG(INFO) << pDescr->sz <<"[" << ib << "]= " << (unsigned)*pui8 << "\n";
+ }
}
else
{