Skip to content

Commit 7c1185b

Browse files
authored
major bump: fix some shortcomings of public interfaces (#228)
Fix missing virtual destructor and remove harmful noexcept from public API.
1 parent fe7dc37 commit 7c1185b

3 files changed

Lines changed: 7 additions & 4 deletions

File tree

SilKit/include/silkit/detail/impl/services/lin/LinController.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class LinController : public SilKit::Services::Lin::ILinController
4646

4747
inline void Init(SilKit::Services::Lin::LinControllerConfig config) override;
4848

49-
inline auto Status() const noexcept -> SilKit::Services::Lin::LinControllerStatus override;
49+
inline auto Status() const -> SilKit::Services::Lin::LinControllerStatus override;
5050

5151
inline void SendFrame(SilKit::Services::Lin::LinFrame frame,
5252
SilKit::Services::Lin::LinFrameResponseType responseType) override;
@@ -188,12 +188,12 @@ void LinController::Init(SilKit::Services::Lin::LinControllerConfig config)
188188
ThrowOnError(returnCode);
189189
}
190190

191-
auto LinController::Status() const noexcept -> SilKit::Services::Lin::LinControllerStatus
191+
auto LinController::Status() const -> SilKit::Services::Lin::LinControllerStatus
192192
{
193193
SilKit_LinControllerStatus status{SilKit_LinControllerStatus_Unknown};
194194

195195
const auto returnCode = SilKit_LinController_Status(_linController, &status);
196-
ThrowOnError(returnCode); // will call std::terminate on exception (! because noexcept !)
196+
ThrowOnError(returnCode);
197197

198198
return static_cast<SilKit::Services::Lin::LinControllerStatus>(status);
199199
}

SilKit/include/silkit/services/lin/ILinController.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class ILinController
9696
virtual void Init(LinControllerConfig config) = 0;
9797

9898
//! \brief Get the current status of the LIN Controller, i.e., Operational or Sleep.
99-
virtual auto Status() const noexcept -> LinControllerStatus = 0;
99+
virtual auto Status() const -> LinControllerStatus = 0;
100100

101101
/*! \brief Initiate a LIN data transfer of a given LinFrameResponseType (AUTOSAR LIN master interface)
102102
*

SilKit/include/silkit/services/orchestration/ISystemMonitor.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ namespace Orchestration {
3232

3333
class ISystemMonitor
3434
{
35+
public:
36+
virtual ~ISystemMonitor() = default;
37+
3538
public:
3639
/*! Callback type to indicate that a \ref SilKit::Services::Orchestration::SystemState has been received.
3740
* Cf., \ref AddSystemStateHandler(SystemStateHandler);

0 commit comments

Comments
 (0)