Unverified Commit 75d63df4 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

fix small memory leak in pair style hybrid when reading restarts

parent 8916aeb3
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ PairHybrid::PairHybrid(LAMMPS *lmp) : Pair(lmp),

PairHybrid::~PairHybrid()
{
  if (nstyles) {
  if (nstyles > 0) {
    for (int m = 0; m < nstyles; m++) {
      delete styles[m];
      delete [] keywords[m];
@@ -243,11 +243,18 @@ void PairHybrid::settings(int narg, char **arg)

  // delete old lists, since cannot just change settings

  if (nstyles) {
    for (int m = 0; m < nstyles; m++) delete styles[m];
  if (nstyles > 0) {
    for (int m = 0; m < nstyles; m++) {
      delete styles[m];
      delete [] keywords[m];
      if (special_lj[m])   delete [] special_lj[m];
      if (special_coul[m]) delete [] special_coul[m];
    }
    delete[] styles;
    for (int m = 0; m < nstyles; m++) delete [] keywords[m];
    delete[] keywords;
    delete[] multiple;
    delete[] special_lj;
    delete[] special_coul;
  }

  if (allocated) {
@@ -670,6 +677,12 @@ void PairHybrid::read_restart(FILE *fp)

  // allocate list of sub-styles

  delete[] styles;
  delete[] keywords;
  delete[] multiple;
  delete[] special_lj;
  delete[] special_coul;

  styles = new Pair*[nstyles];
  keywords = new char*[nstyles];
  multiple = new int[nstyles];