Commit 0ab0ec15 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Fix invalid memory access in INCLUSION dynamic orders

parent 9b3833ce
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -2082,25 +2082,23 @@ long InclusionIterationData::get_size(GeometryConfiguration *gconf, ScattererCon
int InclusionIterationData::update_orders(double **rcf, int inner_order, int outer_order) {
  int result = 0;
  int old_lm = c1->lm;
  ((ParticleDescriptorInclusion *)c1)->update_orders(inner_order, outer_order);
  for (int zi = 0; zi < old_lm; zi++) {
    for (int zj = 0; zj < 3; zj++) {
      for (int zk = 0; zk < 2; zk++) {
	delete[] zpv[zi][zj][zk];
      }
      delete[] zpv[zi][zj];
    }
    delete[] zpv[zi];
  }
  delete[] zpv;
  delete[] vec_zpv;
  ((ParticleDescriptorInclusion *)c1)->update_orders(inner_order, outer_order);
  vec_zpv = new double[c1->lm * 12]();
  zpv = new double***[c1->lm];
  for (int zi = 0; zi < c1->lm; zi++) {
    zpv[zi] = new double**[3];
    for (int zj = 0; zj < 3; zj++) {
      zpv[zi][zj] = new double*[2];
      for (int zk = 0; zk < 2; zk++) {
	zpv[zi][zj][zk] = new double[2]();
      }
      zpv[zi][zj][0] = vec_zpv + (zi * 12) + (zj * 4);
      zpv[zi][zj][1] = vec_zpv + (zi * 12) + (zj * 4) + 2;
    }
  }
  instr(rcf, c1);