diff --git a/src/atom_vec.cpp b/src/atom_vec.cpp index 78903d6a7f..eec09cf58a 100644 --- a/src/atom_vec.cpp +++ b/src/atom_vec.cpp @@ -2470,7 +2470,7 @@ int AtomVec::process_fields(char *str, const char *default_str, Method *method) // allocate memory in method method->resize(nfield); - int *index = method->index; + std::vector & index = method->index; int match; for (int i = 0; i < nfield; i++) { @@ -2523,40 +2523,12 @@ void AtomVec::init_method(int nfield, Method *method) Method class members ------------------------------------------------------------------------- */ -AtomVec::Method::~Method() -{ - delete [] pdata; - delete [] datatype; - delete [] cols; - delete [] maxcols; - delete [] collength; - delete [] plength; - delete [] index; -} - void AtomVec::Method::resize(int nfield) { - delete [] pdata; - delete [] datatype; - delete [] cols; - delete [] maxcols; - delete [] collength; - delete [] plength; - delete [] index; - pdata = nullptr; - datatype = nullptr; - cols = nullptr; - maxcols = nullptr; - collength = nullptr; - plength = nullptr; - index = nullptr; - - if (nfield > 0) { - pdata = new void*[nfield]; - datatype = new int[nfield]; - cols = new int[nfield]; - maxcols = new int*[nfield]; - collength = new int[nfield]; - plength = new void*[nfield]; - index = new int[nfield]; - } + pdata.resize(nfield); + datatype.resize(nfield); + cols.resize(nfield); + maxcols.resize(nfield); + collength.resize(nfield); + plength.resize(nfield); + index.resize(nfield); } diff --git a/src/atom_vec.h b/src/atom_vec.h index d1915ba508..a8f5f5ec22 100644 --- a/src/atom_vec.h +++ b/src/atom_vec.h @@ -191,16 +191,14 @@ class AtomVec : protected Pointers { const char *default_create,*default_data_atom,*default_data_vel; struct Method { - void **pdata = nullptr; - int *datatype = nullptr; - int *cols = nullptr; - int **maxcols = nullptr; - int *collength = nullptr; - void **plength = nullptr; - int *index = nullptr; + std::vector pdata; + std::vector datatype; + std::vector cols; + std::vector maxcols; + std::vector collength; + std::vector plength; + std::vector index; - Method() = default; - ~Method(); void resize(int nfield); };