From 6a1e5385e596aba1d5c5d727747834a641b7d47e Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Mon, 31 Aug 2020 22:14:37 -0700 Subject: [PATCH] [sim] WS: Don't call virtual function from destructor --- .../src/main/native/cpp/WSProvider_Analog.cpp | 6 ++++-- .../halsim_ws_core/src/main/native/cpp/WSProvider_DIO.cpp | 6 ++++-- .../src/main/native/cpp/WSProvider_DriverStation.cpp | 6 ++++-- .../src/main/native/cpp/WSProvider_Encoder.cpp | 6 ++++-- .../src/main/native/cpp/WSProvider_Joystick.cpp | 6 ++++-- .../halsim_ws_core/src/main/native/cpp/WSProvider_PWM.cpp | 6 ++++-- .../src/main/native/cpp/WSProvider_Relay.cpp | 6 ++++-- .../src/main/native/cpp/WSProvider_RoboRIO.cpp | 6 ++++-- .../src/main/native/cpp/WSProvider_dPWM.cpp | 8 ++++++-- .../src/main/native/include/WSProvider_Analog.h | 2 ++ .../src/main/native/include/WSProvider_DIO.h | 1 + .../src/main/native/include/WSProvider_DriverStation.h | 1 + .../src/main/native/include/WSProvider_Encoder.h | 1 + .../src/main/native/include/WSProvider_Joystick.h | 1 + .../src/main/native/include/WSProvider_PWM.h | 1 + .../src/main/native/include/WSProvider_Relay.h | 1 + .../src/main/native/include/WSProvider_RoboRIO.h | 1 + .../src/main/native/include/WSProvider_dPWM.h | 1 + 18 files changed, 48 insertions(+), 18 deletions(-) diff --git a/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_Analog.cpp b/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_Analog.cpp index 280ce5e4f1..91a8fa99ab 100644 --- a/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_Analog.cpp +++ b/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_Analog.cpp @@ -45,7 +45,7 @@ void HALSimWSProviderAnalogIn::Initialize(WSRegisterFunc webRegisterFunc) { webRegisterFunc); } -HALSimWSProviderAnalogIn::~HALSimWSProviderAnalogIn() { CancelCallbacks(); } +HALSimWSProviderAnalogIn::~HALSimWSProviderAnalogIn() { DoCancelCallbacks(); } void HALSimWSProviderAnalogIn::RegisterCallbacks() { m_initCbKey = REGISTER_AIN(Initialized, "("RoboRIO", webRegisterFunc); } -HALSimWSProviderRoboRIO::~HALSimWSProviderRoboRIO() { CancelCallbacks(); } +HALSimWSProviderRoboRIO::~HALSimWSProviderRoboRIO() { DoCancelCallbacks(); } void HALSimWSProviderRoboRIO::RegisterCallbacks() { m_fpgaCbKey = REGISTER(FPGAButton, ">fpga_button", bool, boolean); @@ -47,7 +47,9 @@ void HALSimWSProviderRoboRIO::RegisterCallbacks() { m_3v3FaultsCbKey = REGISTER(UserFaults3V3, ">3v3_faults", int32_t, int); } -void HALSimWSProviderRoboRIO::CancelCallbacks() { +void HALSimWSProviderRoboRIO::CancelCallbacks() { DoCancelCallbacks(); } + +void HALSimWSProviderRoboRIO::DoCancelCallbacks() { HALSIM_CancelRoboRioFPGAButtonCallback(m_fpgaCbKey); HALSIM_CancelRoboRioVInVoltageCallback(m_vinVoltageCbKey); HALSIM_CancelRoboRioVInCurrentCallback(m_vinCurrentCbKey); diff --git a/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_dPWM.cpp b/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_dPWM.cpp index 881bb28f97..ce4fd79068 100644 --- a/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_dPWM.cpp +++ b/simulation/halsim_ws_core/src/main/native/cpp/WSProvider_dPWM.cpp @@ -26,7 +26,9 @@ void HALSimWSProviderDigitalPWM::Initialize(WSRegisterFunc webRegisterFunc) { "dPWM", HAL_GetNumDigitalPWMOutputs(), webRegisterFunc); } -HALSimWSProviderDigitalPWM::~HALSimWSProviderDigitalPWM() { CancelCallbacks(); } +HALSimWSProviderDigitalPWM::~HALSimWSProviderDigitalPWM() { + DoCancelCallbacks(); +} void HALSimWSProviderDigitalPWM::RegisterCallbacks() { m_initCbKey = REGISTER(Initialized, "