avoid memory leak for element names

This commit is contained in:
Axel Kohlmeyer
2025-04-07 18:05:35 -04:00
parent 6c337ba655
commit 8ea6c5c395
3 changed files with 5 additions and 3 deletions

View File

@ -35,6 +35,7 @@ MLIAPDescriptor::MLIAPDescriptor(LAMMPS *lmp) :
MLIAPDescriptor::~MLIAPDescriptor()
{
if (allocated_elements)
for (int i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
memory->destroy(cutsq);

View File

@ -82,7 +82,7 @@ MLIAPDescriptorACE::MLIAPDescriptorACE(LAMMPS *_lmp, char *yacefilename) :
for (int iielem = 0; iielem < nelements; iielem++) delete[] elements[iielem];
delete[] elements;
allocated_elements = 0;
} else if (not allocated_elements) {
} else if (!allocated_elements) {
elements = new char *[nelements];
for (int iielem = 0; iielem < nelements; iielem++) {
elements[iielem] = utils::strdup(acemlimpl->basis_set->elements_name[iielem]);

View File

@ -111,7 +111,8 @@ void MLIAPDummyDescriptor::set_elements(char **elems, int nelems)
{
nelements = nelems;
elements = new char *[nelems];
for (int i = 0; i < nelems; i++) { elements[i] = utils::strdup(elems[i]); }
for (int i = 0; i < nelems; i++) elements[i] = utils::strdup(elems[i]);
allocated_elements = 1;
}
/* ---------------------------------------------------------------------- */