diff --git a/src/Agilent4uhv.cpp b/src/Agilent4uhv.cpp index f2e9c77ab54e5668a6469198728eb664076d9b5e..9cc7a4283a5f0e3689b54ecf6a16188277dfbe2f 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;