Ignore:
Timestamp:
Mar 11, 2013, 11:33:01 PM (13 years ago)
Author:
Frederik Heber <heber@…>
Children:
889c27
Parents:
e00146
git-author:
Frederik Heber <heber@…> (03/06/13 13:58:13)
git-committer:
Frederik Heber <heber@…> (03/11/13 23:33:01)
Message:

MEMFIX: Fixed some memory leaks in mainFunction().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/bin/mpqc/mpqc.cc

    re00146 r8d3df9  
    17891789    size_t gather_region = findTimerRegion(nregion, region_names, "gather");
    17901790    size_t mpqc_region = findTimerRegion(nregion, region_names, "mpqc");
     1791    delete[] region_names;
    17911792
    17921793    // get timings
     
    18811882  // create unique, temporary name and check whether it exists
    18821883  const char *output = NULL;
     1884  char *tempfilename = NULL;
    18831885  {
    18841886    std::ifstream test;
    18851887    do {
     1888      if (output != NULL) // free buffer from last round
     1889        delete output;
    18861890      char filename_template[] = "mpqc_temp_XXXXXX\0";
    18871891      char filename_suffix[] = ".in\0";
    1888       char *tempfilename = (char *) malloc ( (strlen(filename_template)+strlen(filename_suffix)+2)*(sizeof(char)));
     1892      tempfilename = (char *) malloc ( (strlen(filename_template)+strlen(filename_suffix)+2)*(sizeof(char)));
    18891893      strncpy(tempfilename, mktemp(filename_template), strlen(filename_template));
    18901894      tempfilename[strlen(filename_template)] = '\0';
     
    18931897      //free(tempfilename); // don't free! output takes over pointer!
    18941898      test.open(output);
    1895     } while (test.good());
     1899    } while (test.good()); // test whether file does not(!) exist
    18961900    test.close();
    18971901  }
     
    19001904// now call work horse
    19011905  mainFunction(grp, values, output, input, generic_input, in_char_array, argc, argv, data);
    1902 //  delete[] in_char_array;
    1903 
    1904 //  if (output != 0) {
    1905 //    ExEnv::set_out(&cout);
    1906 //    delete outstream;
    1907 //  }
    1908 //  delete[] argv;
    1909 //
     1906
     1907  //delete[] in_char_array; // is deleted in mainFunction()
     1908  if (output != 0) {
     1909    free(tempfilename);
     1910  }
     1911  delete[] argv;
     1912  grp = NULL;
     1913
    19101914  // place into returnstream
    19111915  std::stringstream returnstream;
Note: See TracChangeset for help on using the changeset viewer.