From 36f91d30ebf6d617e4d3dc3299855a59598b4170 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Aug 2015 09:53:13 +0300 Subject: [PATCH] Fixes pure virtual call exception in VirtualCanDriver<>::handleRxFrame() Stack trace: Thread [1] (Suspended: Breakpoint hit.) 12 __cxa_pure_virtual() libxx_cxapurevirtual.cxx:66 0x0808ca42 11 notifyRxFrameListener() uc_dispatcher.cpp:216 0x080787ce 10 uavcan::Dispatcher::spinOnce() uc_dispatcher.cpp:276 0x080787ce 9 uavcan::Scheduler::spinOnce() uc_scheduler.cpp:196 0x0807b4e0 8 spinOnce() abstract_node.hpp:88 0x080659fc 7 spinOnce() node.hpp:132 0x080659fc 6 UavcanNode::node_spin_once() uavcan_main.cpp:428 0x080659fc 5 UavcanNode::run() uavcan_main.cpp:542 0x08065e74 4 operator() uavcan_main.cpp:343 0x0806626a 3 UavcanNode::__lambda0::_FUN() uavcan_main.cpp:343 0x0806626a 2 task_start() task_start.c:138 0x08087720 1 0x00000000 --- src/modules/uavcan/uavcan_servers.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/uavcan/uavcan_servers.cpp b/src/modules/uavcan/uavcan_servers.cpp index d6d72a2f53..1713b282e7 100644 --- a/src/modules/uavcan/uavcan_servers.cpp +++ b/src/modules/uavcan/uavcan_servers.cpp @@ -98,6 +98,7 @@ UavcanServers::~UavcanServers() if (_mutex_inited) { (void)Lock::deinit(_subnode_mutex); } + _main_node.getDispatcher().removeRxFrameListener(); } int UavcanServers::stop(void)