Code improvements in ser/deser code wrt passing data size (#39)

* Some code improvements in ser/deser code wrt passing data size
to cycdeserbase class.

Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>

* Move adjusting deserialisation limit in cycdeserbase to line where
data pointer is moved.

Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>
This commit is contained in:
dennis-adlink 2019-09-24 16:13:34 +02:00 committed by eboasson
parent a61a014a11
commit c2c69ac032

View file

@ -32,10 +32,10 @@ cycser::cycser(std::vector<unsigned char> & dst_)
dst.push_back(0);
}
cycdeserbase::cycdeserbase(const char * data_, size_t lim_)
cycdeserbase::cycdeserbase(const char * data_, size_t size_)
: data(data_),
pos(0),
lim(lim_),
lim(size_),
swap_bytes(false)
{
/* Get the endianness byte (skip unused first byte in data[0]) */
@ -46,17 +46,17 @@ cycdeserbase::cycdeserbase(const char * data_, size_t lim_)
/* Ignore representation options (data_[2] and data_[3]) */
data += 4;
lim -= 4;
}
cycdeser::cycdeser(const void * data_, size_t size_)
: cycdeserbase(static_cast<const char *>(data_), size_ - 4)
: cycdeserbase(static_cast<const char *>(data_), size_)
{
}
cycprint::cycprint(char * buf_, size_t bufsize_, const void * data_, size_t size_)
: cycdeserbase(static_cast<const char *>(data_), size_ - 4),
: cycdeserbase(static_cast<const char *>(data_), size_),
buf(buf_),
bufsize(bufsize_)
{
static_cast<void>(size_);
}