diff --git a/rmw_cyclonedds_cpp/src/serdes.cpp b/rmw_cyclonedds_cpp/src/serdes.cpp index 51a4723..d5857aa 100755 --- a/rmw_cyclonedds_cpp/src/serdes.cpp +++ b/rmw_cyclonedds_cpp/src/serdes.cpp @@ -32,10 +32,10 @@ cycser::cycser(std::vector & 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(data_), size_ - 4) +: cycdeserbase(static_cast(data_), size_) { } cycprint::cycprint(char * buf_, size_t bufsize_, const void * data_, size_t size_) -: cycdeserbase(static_cast(data_), size_ - 4), +: cycdeserbase(static_cast(data_), size_), buf(buf_), bufsize(bufsize_) { - static_cast(size_); }