diff --git a/src/ML-IAP/mliap_descriptor.cpp b/src/ML-IAP/mliap_descriptor.cpp index 615cd75102..017d36e5e7 100644 --- a/src/ML-IAP/mliap_descriptor.cpp +++ b/src/ML-IAP/mliap_descriptor.cpp @@ -35,7 +35,8 @@ MLIAPDescriptor::MLIAPDescriptor(LAMMPS *lmp) : MLIAPDescriptor::~MLIAPDescriptor() { - for (int i = 0; i < nelements; i++) delete[] elements[i]; + if (allocated_elements) + for (int i = 0; i < nelements; i++) delete[] elements[i]; delete[] elements; memory->destroy(cutsq); memory->destroy(radelem); diff --git a/src/ML-IAP/mliap_descriptor_ace.cpp b/src/ML-IAP/mliap_descriptor_ace.cpp index b13699193c..9b5d473123 100644 --- a/src/ML-IAP/mliap_descriptor_ace.cpp +++ b/src/ML-IAP/mliap_descriptor_ace.cpp @@ -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]); diff --git a/src/ML-IAP/mliap_unified.cpp b/src/ML-IAP/mliap_unified.cpp index a7970022f4..d95bd060d7 100644 --- a/src/ML-IAP/mliap_unified.cpp +++ b/src/ML-IAP/mliap_unified.cpp @@ -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; } /* ---------------------------------------------------------------------- */