fix some more minor memory issues flagged by coverity scan
This commit is contained in:
@ -74,14 +74,13 @@ static constexpr double SHIFT = 0.0;
|
|||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) :
|
FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg),
|
Fix(lmp, narg, arg), infile(nullptr), outfile(nullptr), random(nullptr), gfactor1(nullptr),
|
||||||
random(nullptr), gfactor1(nullptr), gfactor2(nullptr), ratio(nullptr), flangevin(nullptr),
|
gfactor2(nullptr), ratio(nullptr), flangevin(nullptr), T_electron(nullptr),
|
||||||
T_electron(nullptr), T_electron_old(nullptr), net_energy_transfer(nullptr),
|
T_electron_old(nullptr), net_energy_transfer(nullptr), net_energy_transfer_all(nullptr)
|
||||||
net_energy_transfer_all(nullptr)
|
|
||||||
{
|
{
|
||||||
if (lmp->citeme) lmp->citeme->add(cite_fix_ttm_mod);
|
if (lmp->citeme) lmp->citeme->add(cite_fix_ttm_mod);
|
||||||
|
|
||||||
if (narg < 8) error->all(FLERR,"Illegal fix ttm/mod command");
|
if (narg < 8) utils::missing_cmd_args(FLERR, "fix ttm/mod", error);
|
||||||
|
|
||||||
vector_flag = 1;
|
vector_flag = 1;
|
||||||
size_vector = 2;
|
size_vector = 2;
|
||||||
@ -103,27 +102,29 @@ FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
int iarg = 8;
|
int iarg = 8;
|
||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
if (strcmp(arg[iarg],"set") == 0) {
|
if (strcmp(arg[iarg],"set") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix ttm/mod command");
|
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ttm/mod set", error);
|
||||||
tinit = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
tinit = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
||||||
if (tinit <= 0.0)
|
if (tinit <= 0.0)
|
||||||
error->all(FLERR,"Fix ttm/mod initial temperature must be > 0.0");
|
error->all(FLERR,"Fix ttm/mod initial temperature must be > 0.0");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"infile") == 0) {
|
} else if (strcmp(arg[iarg],"infile") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix ttm/mod command");
|
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ttm/mod infile", error);
|
||||||
|
delete[] infile;
|
||||||
infile = utils::strdup(arg[iarg+1]);
|
infile = utils::strdup(arg[iarg+1]);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"outfile") == 0) {
|
} else if (strcmp(arg[iarg],"outfile") == 0) {
|
||||||
if (iarg+3 > narg) error->all(FLERR,"Illegal fix ttm/mod command");
|
if (iarg+3 > narg) utils::missing_cmd_args(FLERR, "fix ttm/mod outfile", error);
|
||||||
|
delete[] outfile;
|
||||||
outevery = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
|
outevery = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
|
||||||
outfile = utils::strdup(arg[iarg+2]);
|
outfile = utils::strdup(arg[iarg+2]);
|
||||||
iarg += 3;
|
iarg += 3;
|
||||||
} else error->all(FLERR,"Illegal fix ttm/mod command");
|
} else error->all(FLERR,"Unknown fix ttm/mod keyword {}", arg[iarg]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// error check
|
// error check
|
||||||
|
|
||||||
if (seed <= 0)
|
if (seed <= 0)
|
||||||
error->all(FLERR,"Invalid random number seed in fix ttm/mod command");
|
error->all(FLERR,"Invalid random number seed {} in fix ttm/mod command", seed);
|
||||||
if (nxgrid <= 0 || nygrid <= 0 || nzgrid <= 0)
|
if (nxgrid <= 0 || nygrid <= 0 || nzgrid <= 0)
|
||||||
error->all(FLERR,"Fix ttm/mod grid sizes must be > 0");
|
error->all(FLERR,"Fix ttm/mod grid sizes must be > 0");
|
||||||
|
|
||||||
@ -152,7 +153,8 @@ FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
if (v_0 < 0.0) error->all(FLERR,"Fix ttm/mod v_0 must be >= 0.0");
|
if (v_0 < 0.0) error->all(FLERR,"Fix ttm/mod v_0 must be >= 0.0");
|
||||||
if (ionic_density <= 0.0) error->all(FLERR,"Fix ttm/mod ionic_density must be > 0.0");
|
if (ionic_density <= 0.0) error->all(FLERR,"Fix ttm/mod ionic_density must be > 0.0");
|
||||||
if (surface_l < 0) error->all(FLERR,"Surface coordinates must be >= 0");
|
if (surface_l < 0) error->all(FLERR,"Surface coordinates must be >= 0");
|
||||||
if (surface_l >= surface_r) error->all(FLERR, "Left surface coordinate must be less than right surface coordinate");
|
if (surface_l >= surface_r)
|
||||||
|
error->all(FLERR, "Left surface coordinate must be less than right surface coordinate");
|
||||||
|
|
||||||
// initialize Marsaglia RNG with processor-unique seed
|
// initialize Marsaglia RNG with processor-unique seed
|
||||||
|
|
||||||
@ -168,10 +170,8 @@ FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
memory->create(T_electron_old,nzgrid,nygrid,nxgrid,"ttm/mod:T_electron_old");
|
memory->create(T_electron_old,nzgrid,nygrid,nxgrid,"ttm/mod:T_electron_old");
|
||||||
memory->create(T_electron_first,nzgrid,nygrid,nxgrid,"ttm/mod:T_electron_first");
|
memory->create(T_electron_first,nzgrid,nygrid,nxgrid,"ttm/mod:T_electron_first");
|
||||||
memory->create(T_electron,nzgrid,nygrid,nxgrid,"ttm/mod:T_electron");
|
memory->create(T_electron,nzgrid,nygrid,nxgrid,"ttm/mod:T_electron");
|
||||||
memory->create(net_energy_transfer,nzgrid,nygrid,nxgrid,
|
memory->create(net_energy_transfer,nzgrid,nygrid,nxgrid,"ttm/mod:net_energy_transfer");
|
||||||
"ttm/mod:net_energy_transfer");
|
memory->create(net_energy_transfer_all,nzgrid,nygrid,nxgrid,"ttm/mod:net_energy_transfer_all");
|
||||||
memory->create(net_energy_transfer_all,nzgrid,nygrid,nxgrid,
|
|
||||||
"ttm/mod:net_energy_transfer_all");
|
|
||||||
|
|
||||||
flangevin = nullptr;
|
flangevin = nullptr;
|
||||||
grow_arrays(atom->nmax);
|
grow_arrays(atom->nmax);
|
||||||
|
|||||||
@ -163,6 +163,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg],"region") == 0) {
|
} else if (strcmp(arg[iarg],"region") == 0) {
|
||||||
if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command");
|
if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command");
|
||||||
wallstyle = REGION;
|
wallstyle = REGION;
|
||||||
|
delete[] idregion;
|
||||||
idregion = utils::strdup(arg[iarg+1]);
|
idregion = utils::strdup(arg[iarg+1]);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
// This option is only compatible with fix wall/gran/region
|
// This option is only compatible with fix wall/gran/region
|
||||||
@ -205,6 +206,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg],"temperature") == 0) {
|
} else if (strcmp(arg[iarg],"temperature") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall/gran command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall/gran command");
|
||||||
if (utils::strmatch(arg[iarg+1], "^v_")) {
|
if (utils::strmatch(arg[iarg+1], "^v_")) {
|
||||||
|
delete[] tstr;
|
||||||
tstr = utils::strdup(arg[iarg+1] + 2);
|
tstr = utils::strdup(arg[iarg+1] + 2);
|
||||||
} else {
|
} else {
|
||||||
Twall = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
Twall = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
||||||
|
|||||||
@ -184,12 +184,12 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
|
|
||||||
char *id;
|
char *id;
|
||||||
int igrid,idata,index;
|
int igrid,idata,index;
|
||||||
int iflag =
|
int iflag = utils::check_grid_reference((char *) "Dump image", arg[iarg+1], nevery, id,
|
||||||
utils::check_grid_reference((char *) "Dump image",
|
igrid,idata,index,lmp);
|
||||||
arg[iarg+1],nevery,id,
|
|
||||||
igrid,idata,index,lmp);
|
|
||||||
if (iflag < 0) error->all(FLERR,"Invalid grid reference in dump image command");
|
if (iflag < 0) error->all(FLERR,"Invalid grid reference in dump image command");
|
||||||
|
|
||||||
|
delete[] id_grid_compute;
|
||||||
|
delete[] id_grid_fix;
|
||||||
if (iflag == ArgInfo::COMPUTE) id_grid_compute = utils::strdup(id);
|
if (iflag == ArgInfo::COMPUTE) id_grid_compute = utils::strdup(id);
|
||||||
else if (iflag == ArgInfo::FIX) id_grid_fix = utils::strdup(id);
|
else if (iflag == ArgInfo::FIX) id_grid_fix = utils::strdup(id);
|
||||||
delete[] id;
|
delete[] id;
|
||||||
@ -252,6 +252,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg],"view") == 0) {
|
} else if (strcmp(arg[iarg],"view") == 0) {
|
||||||
if (iarg+3 > narg) error->all(FLERR,"Illegal dump image command");
|
if (iarg+3 > narg) error->all(FLERR,"Illegal dump image command");
|
||||||
if (utils::strmatch(arg[iarg+1],"^v_")) {
|
if (utils::strmatch(arg[iarg+1],"^v_")) {
|
||||||
|
delete[] thetastr;
|
||||||
thetastr = utils::strdup(arg[iarg+1]+2);
|
thetastr = utils::strdup(arg[iarg+1]+2);
|
||||||
} else {
|
} else {
|
||||||
const double theta = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
const double theta = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
||||||
@ -260,6 +261,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
image->theta = DEG2RAD * theta;
|
image->theta = DEG2RAD * theta;
|
||||||
}
|
}
|
||||||
if (utils::strmatch(arg[iarg+2],"^v_")) {
|
if (utils::strmatch(arg[iarg+2],"^v_")) {
|
||||||
|
delete[] phistr;
|
||||||
phistr = utils::strdup(arg[iarg+2]+2);
|
phistr = utils::strdup(arg[iarg+2]+2);
|
||||||
} else {
|
} else {
|
||||||
image->phi = DEG2RAD * utils::numeric(FLERR,arg[iarg+2],false,lmp);
|
image->phi = DEG2RAD * utils::numeric(FLERR,arg[iarg+2],false,lmp);
|
||||||
@ -272,14 +274,17 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
else if (strcmp(arg[iarg+1],"d") == 0) cflag = DYNAMIC;
|
else if (strcmp(arg[iarg+1],"d") == 0) cflag = DYNAMIC;
|
||||||
else error->all(FLERR,"Illegal dump image command");
|
else error->all(FLERR,"Illegal dump image command");
|
||||||
if (utils::strmatch(arg[iarg+2],"^v_")) {
|
if (utils::strmatch(arg[iarg+2],"^v_")) {
|
||||||
|
delete[] cxstr;
|
||||||
cxstr = utils::strdup(arg[iarg+2]+2);
|
cxstr = utils::strdup(arg[iarg+2]+2);
|
||||||
cflag = DYNAMIC;
|
cflag = DYNAMIC;
|
||||||
} else cx = utils::numeric(FLERR,arg[iarg+2],false,lmp);
|
} else cx = utils::numeric(FLERR,arg[iarg+2],false,lmp);
|
||||||
if (utils::strmatch(arg[iarg+3],"^v_")) {
|
if (utils::strmatch(arg[iarg+3],"^v_")) {
|
||||||
|
delete[] cystr;
|
||||||
cystr = utils::strdup(arg[iarg+3]+2);
|
cystr = utils::strdup(arg[iarg+3]+2);
|
||||||
cflag = DYNAMIC;
|
cflag = DYNAMIC;
|
||||||
} else cy = utils::numeric(FLERR,arg[iarg+3],false,lmp);
|
} else cy = utils::numeric(FLERR,arg[iarg+3],false,lmp);
|
||||||
if (utils::strmatch(arg[iarg+4],"^v_")) {
|
if (utils::strmatch(arg[iarg+4],"^v_")) {
|
||||||
|
delete[] czstr;
|
||||||
czstr = utils::strdup(arg[iarg+4]+2);
|
czstr = utils::strdup(arg[iarg+4]+2);
|
||||||
cflag = DYNAMIC;
|
cflag = DYNAMIC;
|
||||||
} else cz = utils::numeric(FLERR,arg[iarg+4],false,lmp);
|
} else cz = utils::numeric(FLERR,arg[iarg+4],false,lmp);
|
||||||
@ -288,12 +293,15 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg],"up") == 0) {
|
} else if (strcmp(arg[iarg],"up") == 0) {
|
||||||
if (iarg+4 > narg) error->all(FLERR,"Illegal dump image command");
|
if (iarg+4 > narg) error->all(FLERR,"Illegal dump image command");
|
||||||
if (utils::strmatch(arg[iarg+1],"^v_")) {
|
if (utils::strmatch(arg[iarg+1],"^v_")) {
|
||||||
|
delete[] upxstr;
|
||||||
upxstr = utils::strdup(arg[iarg+1]+2);
|
upxstr = utils::strdup(arg[iarg+1]+2);
|
||||||
} else image->up[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
} else image->up[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
||||||
if (utils::strmatch(arg[iarg+2],"^v_")) {
|
if (utils::strmatch(arg[iarg+2],"^v_")) {
|
||||||
|
delete[] upystr;
|
||||||
upystr = utils::strdup(arg[iarg+2]+2);
|
upystr = utils::strdup(arg[iarg+2]+2);
|
||||||
} else image->up[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
|
} else image->up[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
|
||||||
if (utils::strmatch(arg[iarg+3],"^v_")) {
|
if (utils::strmatch(arg[iarg+3],"^v_")) {
|
||||||
|
delete[] upzstr;
|
||||||
upzstr = utils::strdup(arg[iarg+3]+2);
|
upzstr = utils::strdup(arg[iarg+3]+2);
|
||||||
} else image->up[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
|
} else image->up[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
|
||||||
iarg += 4;
|
iarg += 4;
|
||||||
@ -301,6 +309,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg],"zoom") == 0) {
|
} else if (strcmp(arg[iarg],"zoom") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal dump image command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal dump image command");
|
||||||
if (utils::strmatch(arg[iarg+1],"^v_")) {
|
if (utils::strmatch(arg[iarg+1],"^v_")) {
|
||||||
|
delete[] zoomstr;
|
||||||
zoomstr = utils::strdup(arg[iarg+1]+2);
|
zoomstr = utils::strdup(arg[iarg+1]+2);
|
||||||
} else {
|
} else {
|
||||||
double zoom = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
double zoom = utils::numeric(FLERR,arg[iarg+1],false,lmp);
|
||||||
|
|||||||
@ -42,19 +42,20 @@ enum{DISCARD,KEEP};
|
|||||||
|
|
||||||
static constexpr int OFFSET = 16384;
|
static constexpr int OFFSET = 16384;
|
||||||
|
|
||||||
|
// clang-format on
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
FixAveGrid::FixAveGrid(LAMMPS *lmp, int narg, char **arg) :
|
FixAveGrid::FixAveGrid(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg), id_bias(nullptr), which(nullptr), argindex(nullptr), ids(nullptr),
|
Fix(lmp, narg, arg), id_bias(nullptr), which(nullptr), argindex(nullptr), ids(nullptr),
|
||||||
value2index(nullptr), value2grid(nullptr), value2data(nullptr), grid2d(nullptr), grid3d(nullptr),
|
value2index(nullptr), value2grid(nullptr), value2data(nullptr), grid2d(nullptr),
|
||||||
grid_buf1(nullptr), grid_buf2(nullptr), grid_output(nullptr), grid_sample(nullptr),
|
grid3d(nullptr), grid_buf1(nullptr), grid_buf2(nullptr), grid_output(nullptr),
|
||||||
grid_nfreq(nullptr), grid_running(nullptr), grid_window(nullptr), grid2d_previous(nullptr),
|
grid_sample(nullptr), grid_nfreq(nullptr), grid_running(nullptr), grid_window(nullptr),
|
||||||
grid3d_previous(nullptr), grid_sample_previous(nullptr), grid_nfreq_previous(nullptr),
|
grid2d_previous(nullptr), grid3d_previous(nullptr), grid_sample_previous(nullptr),
|
||||||
grid_running_previous(nullptr), grid_window_previous(nullptr), bin(nullptr), skip(nullptr),
|
grid_nfreq_previous(nullptr), grid_running_previous(nullptr), grid_window_previous(nullptr),
|
||||||
vresult(nullptr)
|
bin(nullptr), skip(nullptr), vresult(nullptr)
|
||||||
{
|
{
|
||||||
if (narg < 10) utils::missing_cmd_args(FLERR,"fix ave/grid", error);
|
if (narg < 10) utils::missing_cmd_args(FLERR, "fix ave/grid", error);
|
||||||
|
// clang-format off
|
||||||
pergrid_flag = 1;
|
pergrid_flag = 1;
|
||||||
nevery = utils::inumeric(FLERR,arg[3],false,lmp);
|
nevery = utils::inumeric(FLERR,arg[3],false,lmp);
|
||||||
nrepeat = utils::inumeric(FLERR,arg[4],false,lmp);
|
nrepeat = utils::inumeric(FLERR,arg[4],false,lmp);
|
||||||
@ -193,7 +194,6 @@ FixAveGrid::FixAveGrid(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
aveflag = ONE;
|
aveflag = ONE;
|
||||||
nwindow = 0;
|
nwindow = 0;
|
||||||
biasflag = 0;
|
biasflag = 0;
|
||||||
id_bias = nullptr;
|
|
||||||
adof = domain->dimension;
|
adof = domain->dimension;
|
||||||
cdof = 0.0;
|
cdof = 0.0;
|
||||||
|
|
||||||
@ -231,6 +231,7 @@ FixAveGrid::FixAveGrid(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
if (iarg+2 > nargnew)
|
if (iarg+2 > nargnew)
|
||||||
error->all(FLERR,"Illegal fix ave/grid command");
|
error->all(FLERR,"Illegal fix ave/grid command");
|
||||||
biasflag = 1;
|
biasflag = 1;
|
||||||
|
delete[] id_bias;
|
||||||
id_bias = utils::strdup(arg[iarg+1]);
|
id_bias = utils::strdup(arg[iarg+1]);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
|
|
||||||
@ -347,11 +348,7 @@ FixAveGrid::FixAveGrid(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// vresult for per-atom variable evaluation
|
// vresult for per-atom variable evaluation
|
||||||
|
|
||||||
maxatom = 0;
|
maxatom = 0;
|
||||||
bin = nullptr;
|
|
||||||
skip = nullptr;
|
|
||||||
|
|
||||||
maxvar = 0;
|
maxvar = 0;
|
||||||
vresult = nullptr;
|
|
||||||
|
|
||||||
// nvalid = next step on which end_of_step does something
|
// nvalid = next step on which end_of_step does something
|
||||||
// add nvalid to all computes that store invocation times
|
// add nvalid to all computes that store invocation times
|
||||||
@ -372,6 +369,7 @@ FixAveGrid::~FixAveGrid()
|
|||||||
delete[] argindex;
|
delete[] argindex;
|
||||||
for (int m = 0; m < nvalues; m++) delete[] ids[m];
|
for (int m = 0; m < nvalues; m++) delete[] ids[m];
|
||||||
delete[] ids;
|
delete[] ids;
|
||||||
|
delete[] id_bias;
|
||||||
delete[] value2index;
|
delete[] value2index;
|
||||||
delete[] value2grid;
|
delete[] value2grid;
|
||||||
delete[] value2data;
|
delete[] value2data;
|
||||||
|
|||||||
Reference in New Issue
Block a user