diff --git a/libuavcan/include/uavcan/transport/transfer_listener.hpp b/libuavcan/include/uavcan/transport/transfer_listener.hpp index b6d28d29f0..acf7c5999f 100644 --- a/libuavcan/include/uavcan/transport/transfer_listener.hpp +++ b/libuavcan/include/uavcan/transport/transfer_listener.hpp @@ -138,11 +138,7 @@ public: , allow_anonymous_transfers_(false) { } - virtual ~TransferListener() - { - // Map must be cleared before bufmgr is destroyed - receivers_.clear(); - } + virtual ~TransferListener(); const DataTypeDescriptor& getDataTypeDescriptor() const { return data_type_; } diff --git a/libuavcan/src/transport/uc_transfer_listener.cpp b/libuavcan/src/transport/uc_transfer_listener.cpp index 064f5dae9b..d5a7ea6280 100644 --- a/libuavcan/src/transport/uc_transfer_listener.cpp +++ b/libuavcan/src/transport/uc_transfer_listener.cpp @@ -187,6 +187,12 @@ void TransferListener::handleAnonymousTransferReception(const RxFrame& frame) } } +TransferListener::~TransferListener() +{ + // Map must be cleared before bufmgr is destroyed + receivers_.clear(); +} + void TransferListener::cleanup(MonotonicTime ts) { receivers_.removeAllWhere(TimedOutReceiverPredicate(ts, bufmgr_));