diff options
author | David Crocker <dcrocker@eschertech.com> | 2021-06-29 10:57:12 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2021-06-29 10:57:12 +0300 |
commit | 60a2067eaac8fa64473c3068caaca5e7902817d7 (patch) | |
tree | d0d5d4328578a55ebc7321e8db548f7cb5e51aaa /src/Comms | |
parent | 4872582d0c6f26fbf513e058ab5f26a06ccf7c50 (diff) |
In PanelDueUpdater make sure we delete all objects we created
Diffstat (limited to 'src/Comms')
-rw-r--r-- | src/Comms/PanelDueUpdater.cpp | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/Comms/PanelDueUpdater.cpp b/src/Comms/PanelDueUpdater.cpp index 78261eb7..d0a85666 100644 --- a/src/Comms/PanelDueUpdater.cpp +++ b/src/Comms/PanelDueUpdater.cpp @@ -35,6 +35,7 @@ public: void flush() noexcept override { this->uart.flush(); } void setDTR(bool dtr) noexcept override {} void setRTS(bool rts) noexcept override {} + private: UARTClass& uart; int _timeout; @@ -114,11 +115,11 @@ PanelDueUpdater::PanelDueUpdater() noexcept PanelDueUpdater::~PanelDueUpdater() noexcept { - delete samba; - delete serialPort; - delete device; - delete flasherObserver; - delete flasher; + DeleteAndClear(samba); + DeleteAndClear(serialPort); + DeleteAndClear(device); + DeleteAndClear(flasherObserver); + DeleteAndClear(flasher); } void PanelDueUpdater::Start(const StringRef& filenameRef, const uint32_t serialChan) noexcept @@ -269,20 +270,11 @@ void PanelDueUpdater::Spin() noexcept currentBaudRate = 0; // Delete all objects we new'd - delete samba; - samba = nullptr; - - delete serialPort; - serialPort = nullptr; - - delete device; - device = nullptr; - - delete flasherObserver; - flasherObserver = nullptr; - - delete flasher; - flasher = nullptr; + DeleteAndClear(samba); + DeleteAndClear(serialPort); + DeleteAndClear(device); + DeleteAndClear(flasherObserver); + DeleteAndClear(flasher); offset = 0; erasedAndResetAt = 0; @@ -316,6 +308,14 @@ void PanelDueUpdater::Spin() noexcept { reprap.GetPlatform().MessageF(ErrorMessage, "Flashing PanelDue failed in step %s. Please try again.", state.ToString()); } + + // Delete all objects we new'd + DeleteAndClear(samba); + DeleteAndClear(serialPort); + DeleteAndClear(device); + DeleteAndClear(flasherObserver); + DeleteAndClear(flasher); + state = FlashState::done; } } |