aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-csn1.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-03-26 20:00:28 +0100
committerPascal Quantin <pascal@wireshark.org>2020-03-27 16:38:34 +0000
commitf9fdf327ce8976cbce10a0c547161280616ff7f6 (patch)
tree1cb55b929d0bd4b0fd045f6f82f41f5db191d1e6 /epan/dissectors/packet-csn1.c
parent543c55b2c0ebdfed8a29391034841b38a3fae69f (diff)
CSN.1: Optimize update of remaining_bits_len dissecting CSN_UINT_ARRAY
No need to decrement it every loop. Furthermore, when more types are supported, same line can be reused. Change-Id: Ic61c2e839d8dcb0e035172d706978a18b16520df Reviewed-on: https://code.wireshark.org/review/36592 Reviewed-by: Pascal Quantin <pascal@wireshark.org>
Diffstat (limited to 'epan/dissectors/packet-csn1.c')
-rw-r--r--epan/dissectors/packet-csn1.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/epan/dissectors/packet-csn1.c b/epan/dissectors/packet-csn1.c
index b1d0b21c19..8e91f5efbd 100644
--- a/epan/dissectors/packet-csn1.c
+++ b/epan/dissectors/packet-csn1.c
@@ -404,6 +404,7 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
if (remaining_bits_len >= (no_of_bits * nCount))
{
+ remaining_bits_len -= (no_of_bits * nCount);
if (no_of_bits <= 8)
{
pui8 = pui8DATA(data, pDescr->offset);
@@ -411,7 +412,6 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
{
*pui8++ = tvb_get_bits8(tvb, bit_offset, no_of_bits);
proto_tree_add_uint_bits_format_value(tree, *(pDescr->hf_ptr), tvb, bit_offset, no_of_bits, *pui8, " (Count %d)", i++);
- remaining_bits_len -= no_of_bits;
bit_offset += no_of_bits;
} while (--nCount > 0);
}
@@ -875,6 +875,7 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
if (remaining_bits_len >= (no_of_bits * nCount))
{
+ remaining_bits_len -= (no_of_bits * nCount);
if (no_of_bits <= 8)
{
pui8 = pui8DATA(data, pDescr->offset);
@@ -884,7 +885,6 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
*pui8 = tvb_get_bits8(tvb, bit_offset, no_of_bits);
proto_tree_add_uint_bits_format_value(tree, *(pDescr->hf_ptr), tvb, bit_offset, no_of_bits, *pui8, " (Count %d)", i++);
pui8++;
- remaining_bits_len -= no_of_bits;
bit_offset += no_of_bits;
nCount--;
}
@@ -897,7 +897,6 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
{
*pui16 = tvb_get_bits16(tvb, bit_offset, no_of_bits, ENC_BIG_ENDIAN);
proto_tree_add_uint_bits_format_value(tree, *(pDescr->hf_ptr), tvb, bit_offset, no_of_bits, *pui16, " (Count %d)", i++);
- remaining_bits_len -= no_of_bits;
bit_offset += no_of_bits;
nCount--;
}