Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src/Comms
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-06-29 10:57:12 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-06-29 10:57:12 +0300
commit60a2067eaac8fa64473c3068caaca5e7902817d7 (patch)
treed0d5d4328578a55ebc7321e8db548f7cb5e51aaa /src/Comms
parent4872582d0c6f26fbf513e058ab5f26a06ccf7c50 (diff)
In PanelDueUpdater make sure we delete all objects we created
Diffstat (limited to 'src/Comms')
-rw-r--r--src/Comms/PanelDueUpdater.cpp38
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;
}
}