diff --git a/rmw_zenoh_cpp/src/detail/rmw_subscription_data.cpp b/rmw_zenoh_cpp/src/detail/rmw_subscription_data.cpp index 0ace5d23..65e4e435 100644 --- a/rmw_zenoh_cpp/src/detail/rmw_subscription_data.cpp +++ b/rmw_zenoh_cpp/src/detail/rmw_subscription_data.cpp @@ -16,6 +16,7 @@ #include +#include #include #include #include @@ -518,10 +519,14 @@ void SubscriptionData::add_new_message( msg->attachment.sequence_number() - last_known_pub_it->second); if (seq_increment > 1) { - const size_t num_msg_lost = seq_increment - 1; + int32_t num_msg_lost = + static_cast(std::clamp( + seq_increment - 1, + static_cast(std::numeric_limits::min()), + static_cast(std::numeric_limits::max()))); events_mgr_->update_event_status( ZENOH_EVENT_MESSAGE_LOST, - num_msg_lost); + std::move(num_msg_lost)); } } // Always update the last known sequence number for the publisher.