avoid memory leak for element names
This commit is contained in:
@ -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);
|
||||
|
||||
@ -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]);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user