Reserve new space to data_ can_message_t member only if the
authorRomain Forlot <romain.forlot@iot.bzh>
Thu, 2 Mar 2017 21:33:38 +0000 (22:33 +0100)
committerRomain Forlot <romain.forlot@iot.bzh>
Thu, 2 Mar 2017 21:33:38 +0000 (22:33 +0100)
new incoming can frame if bigger than the old one.

Change-Id: I39634cc0d01b300ea471b358e13d704b8eff351c
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
src/can-message.cpp

index 5a3e2c2..63f8a90 100644 (file)
@@ -182,7 +182,8 @@ void can_message_t::convert_from_canfd_frame(const std::pair<struct canfd_frame&
        if(maxdlen_ == CANFD_MAX_DLEN)
                set_flags(frame.flags);
 
-       data_.reserve(maxdlen_);
+       if ( data_.capacity() < maxdlen_)
+               data_.reserve(maxdlen_);
        set_data(frame.data);
 
        DEBUG(binder_interface, "convert_from_canfd_frame: Found id: %X, format: %X, length: %X, data %02X%02X%02X%02X%02X%02X%02X%02X", id_, format_, length_,