From 378b39814a8130d29ddb3b466f8d4938e0d6a154 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 15 Sep 2025 18:58:19 +0000 Subject: [PATCH] Fix warnings from gcc. When compiling with gcc, it was complaining that: "catching polymorphic type 'class rclpy::RCLError' by value". Fix this by making it catch by constref instead. Signed-off-by: Chris Lalancette --- rclpy/src/rclpy/client.cpp | 2 +- rclpy/src/rclpy/service.cpp | 2 +- rclpy/src/rclpy/subscription.cpp | 4 ++-- rclpy/src/rclpy/timer.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rclpy/src/rclpy/client.cpp b/rclpy/src/rclpy/client.cpp index 0c12108da..1ab29ab69 100644 --- a/rclpy/src/rclpy/client.cpp +++ b/rclpy/src/rclpy/client.cpp @@ -42,7 +42,7 @@ Client::destroy() { try { clear_on_new_response_callback(); - } catch (RCLError) { + } catch (const rclpy::RCLError &) { } rcl_client_.reset(); node_.destroy(); diff --git a/rclpy/src/rclpy/service.cpp b/rclpy/src/rclpy/service.cpp index f7714d499..2d65c5313 100644 --- a/rclpy/src/rclpy/service.cpp +++ b/rclpy/src/rclpy/service.cpp @@ -40,7 +40,7 @@ Service::destroy() { try { clear_on_new_request_callback(); - } catch (RCLError) { + } catch (const rclpy::RCLError &) { } rcl_service_.reset(); node_.destroy(); diff --git a/rclpy/src/rclpy/subscription.cpp b/rclpy/src/rclpy/subscription.cpp index e9700a198..959b48875 100644 --- a/rclpy/src/rclpy/subscription.cpp +++ b/rclpy/src/rclpy/subscription.cpp @@ -85,7 +85,7 @@ Subscription::Subscription( error_text += "'"; throw py::value_error(error_text); } - throw RCLError("Failed to create subscription"); + throw rclpy::RCLError("Failed to create subscription"); } } @@ -93,7 +93,7 @@ void Subscription::destroy() { try { clear_on_new_message_callback(); - } catch (RCLError) { + } catch (const rclpy::RCLError &) { } rcl_subscription_.reset(); node_.destroy(); diff --git a/rclpy/src/rclpy/timer.cpp b/rclpy/src/rclpy/timer.cpp index 4561eec78..6f713e814 100644 --- a/rclpy/src/rclpy/timer.cpp +++ b/rclpy/src/rclpy/timer.cpp @@ -37,7 +37,7 @@ Timer::destroy() { try { clear_on_reset_callback(); - } catch (RCLError) { + } catch (const rclpy::RCLError &) { } rcl_timer_.reset(); clock_.destroy();