diff --git a/src/group.cpp b/src/group.cpp index 0143008a72..38ffa79a22 100644 --- a/src/group.cpp +++ b/src/group.cpp @@ -35,6 +35,7 @@ #include #include #include +#include using namespace LAMMPS_NS; @@ -380,7 +381,7 @@ void Group::assign(int narg, char **arg) if (narg < 4) error->all(FLERR,"Illegal group command"); int length = narg-2; - int *list = new int[length]; + std::vector list(length); int jgroup; for (int iarg = 2; iarg < narg; iarg++) { @@ -409,8 +410,6 @@ void Group::assign(int narg, char **arg) if (mask[i] & otherbit) mask[i] &= inverse; } - delete [] list; - // style = union } else if (strcmp(arg[1],"union") == 0) { @@ -418,7 +417,7 @@ void Group::assign(int narg, char **arg) if (narg < 3) error->all(FLERR,"Illegal group command"); int length = narg-2; - int *list = new int[length]; + std::vector list(length); int jgroup; for (int iarg = 2; iarg < narg; iarg++) { @@ -439,8 +438,6 @@ void Group::assign(int narg, char **arg) if (mask[i] & otherbit) mask[i] |= bit; } - delete [] list; - // style = intersect } else if (strcmp(arg[1],"intersect") == 0) { @@ -448,7 +445,7 @@ void Group::assign(int narg, char **arg) if (narg < 4) error->all(FLERR,"Illegal group command"); int length = narg-2; - int *list = new int[length]; + std::vector list(length); int jgroup; for (int iarg = 2; iarg < narg; iarg++) { @@ -472,8 +469,6 @@ void Group::assign(int narg, char **arg) if (ok) mask[i] |= bit; } - delete [] list; - // style = dynamic // create a new FixGroup to dynamically determine atoms in group @@ -539,13 +534,12 @@ void Group::assign(int narg, char **arg) void Group::assign(const std::string &groupcmd) { auto args = utils::split_words(groupcmd); - char **newarg = new char*[args.size()]; + std::vector newarg(args.size()); int i=0; for (const auto &arg : args) { newarg[i++] = (char *)arg.c_str(); } - assign(args.size(),newarg); - delete[] newarg; + assign(args.size(),newarg.data()); } /* ----------------------------------------------------------------------