From 71a71293b90c305227a13515ef5296512f08fec3 Mon Sep 17 00:00:00 2001 From: Alessio Igor Bogani <alessio.bogani@elettra.eu> Date: Thu, 18 Apr 2024 12:16:27 +0200 Subject: [PATCH] Fix memory leaks --- src/Agilent4uhv.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Agilent4uhv.cpp b/src/Agilent4uhv.cpp index f2e9c77..9cc7a42 100644 --- a/src/Agilent4uhv.cpp +++ b/src/Agilent4uhv.cpp @@ -188,9 +188,21 @@ void Agilent4uhv::delete_device() // Delete device allocated objects if (attr_Model_read[0]) - delete attr_Model_read[0]; + delete[] attr_Model_read[0]; if (attr_SerialNumber_read[0]) - delete attr_SerialNumber_read[0]; + delete[] attr_SerialNumber_read[0]; + + for (size_t i=0; i<channels.size(); ++i) { + string attr_status_name = "Status" + channels[i]; + Tango::DevString *att_value = get_StatusX_data_ptr(attr_status_name); + if (*att_value) + delete[] *att_value; + } + + for (size_t i=0; i<channels.size(); ++i) { + remove_OnHVX_dynamic_command("OnHV" + channels[i]); + remove_OffHVX_dynamic_command("OffHV" + channels[i]); + } /*----- PROTECTED REGION END -----*/ // Agilent4uhv::delete_device delete[] attr_Model_read; -- GitLab