Add virtual destructors to classes with virtual functions. (#566)

This fixes the build on MacOS High Sierra and later, and
is the more correct thing to do anyway.

Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
This commit is contained in:
Chris Lalancette 2018-10-08 11:02:08 -04:00 committed by GitHub
parent b3cbf06c09
commit bedb3ae361
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 1 deletions

View file

@ -45,7 +45,7 @@ public:
RCLCPP_SMART_PTR_DEFINITIONS_NOT_COPYABLE(IntraProcessManagerImplBase) RCLCPP_SMART_PTR_DEFINITIONS_NOT_COPYABLE(IntraProcessManagerImplBase)
IntraProcessManagerImplBase() = default; IntraProcessManagerImplBase() = default;
~IntraProcessManagerImplBase() = default; virtual ~IntraProcessManagerImplBase() = default;
virtual void virtual void
add_subscription(uint64_t id, SubscriptionBase::SharedPtr subscription) = 0; add_subscription(uint64_t id, SubscriptionBase::SharedPtr subscription) = 0;

View file

@ -43,6 +43,8 @@ public:
RCLCPP_SMART_PTR_DEFINITIONS_NOT_COPYABLE(MemoryStrategy) RCLCPP_SMART_PTR_DEFINITIONS_NOT_COPYABLE(MemoryStrategy)
using WeakNodeVector = std::vector<rclcpp::node_interfaces::NodeBaseInterface::WeakPtr>; using WeakNodeVector = std::vector<rclcpp::node_interfaces::NodeBaseInterface::WeakPtr>;
virtual ~MemoryStrategy() = default;
virtual bool collect_entities(const WeakNodeVector & weak_nodes) = 0; virtual bool collect_entities(const WeakNodeVector & weak_nodes) = 0;
virtual size_t number_of_ready_subscriptions() const = 0; virtual size_t number_of_ready_subscriptions() const = 0;

View file

@ -71,6 +71,8 @@ public:
rcutils_allocator_ = allocator::get_rcl_allocator<char, BufferAlloc>(*buffer_allocator_.get()); rcutils_allocator_ = allocator::get_rcl_allocator<char, BufferAlloc>(*buffer_allocator_.get());
} }
virtual ~MessageMemoryStrategy() = default;
/// Default factory method /// Default factory method
static SharedPtr create_default() static SharedPtr create_default()
{ {