From bc39a1a2932bd53cb46d216502474a4d6f3f045c Mon Sep 17 00:00:00 2001 From: Thad House Date: Tue, 1 Mar 2022 11:10:45 -0800 Subject: [PATCH] [wpilibc] Fix moved pneumatics objects not destructing properly (#4068) --- wpilibc/src/main/native/cpp/Compressor.cpp | 4 +++- wpilibc/src/main/native/cpp/DoubleSolenoid.cpp | 4 +++- wpilibc/src/main/native/cpp/Solenoid.cpp | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/wpilibc/src/main/native/cpp/Compressor.cpp b/wpilibc/src/main/native/cpp/Compressor.cpp index d994b140aa..3f7044759d 100644 --- a/wpilibc/src/main/native/cpp/Compressor.cpp +++ b/wpilibc/src/main/native/cpp/Compressor.cpp @@ -29,7 +29,9 @@ Compressor::Compressor(PneumaticsModuleType moduleType) : Compressor{PneumaticsBase::GetDefaultForType(moduleType), moduleType} {} Compressor::~Compressor() { - m_module->UnreserveCompressor(); + if (m_module) { + m_module->UnreserveCompressor(); + } } void Compressor::Start() { diff --git a/wpilibc/src/main/native/cpp/DoubleSolenoid.cpp b/wpilibc/src/main/native/cpp/DoubleSolenoid.cpp index 212673a988..566c9f2418 100644 --- a/wpilibc/src/main/native/cpp/DoubleSolenoid.cpp +++ b/wpilibc/src/main/native/cpp/DoubleSolenoid.cpp @@ -65,7 +65,9 @@ DoubleSolenoid::DoubleSolenoid(PneumaticsModuleType moduleType, forwardChannel, reverseChannel} {} DoubleSolenoid::~DoubleSolenoid() { - m_module->UnreserveSolenoids(m_mask); + if (m_module) { + m_module->UnreserveSolenoids(m_mask); + } } void DoubleSolenoid::Set(Value value) { diff --git a/wpilibc/src/main/native/cpp/Solenoid.cpp b/wpilibc/src/main/native/cpp/Solenoid.cpp index 49000c2bf6..9cb181e900 100644 --- a/wpilibc/src/main/native/cpp/Solenoid.cpp +++ b/wpilibc/src/main/native/cpp/Solenoid.cpp @@ -39,7 +39,9 @@ Solenoid::Solenoid(PneumaticsModuleType moduleType, int channel) channel} {} Solenoid::~Solenoid() { - m_module->UnreserveSolenoids(m_mask); + if (m_module) { + m_module->UnreserveSolenoids(m_mask); + } } void Solenoid::Set(bool on) {