Changeset 204


Ignore:
Timestamp:
Mar 22, 2011 10:11:28 AM (9 years ago)
Author:
awalther
Message:

fix memory leak when retaping with sparse facility: add free-routines in initNewTape

Location:
trunk/ADOL-C/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ADOL-C/src/sparse/sparsedrivers.cpp

    r196 r204  
    10811081   if(Zppp)
    10821082      myfree3(Zppp);
     1083
    10831084   if(Upp)
    10841085      myfree2(Upp);
     
    10861087   if(HP)
    10871088     {
    1088        for (int i=0;i<indep;i++) {
     1089       for (int i=0;i<indep;i++)
    10891090         free(HP[i]);
    1090        }
    10911091       free(HP);
    10921092     }
  • trunk/ADOL-C/src/tape_handling.cpp

    r201 r204  
    301301                initTapeInfos_keep(*tiIter);
    302302                (*tiIter)->tapeID = tapeID;
     303#ifdef SPARSE
     304                freeSparseJacInfos(newTapeInfos->pTapeInfos.sJinfos.y,
     305                                   newTapeInfos->pTapeInfos.sJinfos.B,
     306                                   newTapeInfos->pTapeInfos.sJinfos.JP,
     307                                   newTapeInfos->pTapeInfos.sJinfos.g,
     308                                   newTapeInfos->pTapeInfos.sJinfos.jr1d,
     309                                   newTapeInfos->pTapeInfos.sJinfos.seed_rows,
     310                                   newTapeInfos->pTapeInfos.sJinfos.seed_clms,
     311                                   newTapeInfos->pTapeInfos.sJinfos.depen);
     312                freeSparseHessInfos(newTapeInfos->pTapeInfos.sHinfos.Hcomp,
     313                                    newTapeInfos->pTapeInfos.sHinfos.Xppp,
     314                                    newTapeInfos->pTapeInfos.sHinfos.Yppp,
     315                                    newTapeInfos->pTapeInfos.sHinfos.Zppp,
     316                                    newTapeInfos->pTapeInfos.sHinfos.Upp,
     317                                    newTapeInfos->pTapeInfos.sHinfos.HP,
     318                                    newTapeInfos->pTapeInfos.sHinfos.g,
     319                                    newTapeInfos->pTapeInfos.sHinfos.hr,
     320                                    newTapeInfos->pTapeInfos.sHinfos.p,
     321                                    newTapeInfos->pTapeInfos.sHinfos.indep);   
     322                newTapeInfos->pTapeInfos.inJacSparseUse=0;
     323                newTapeInfos->pTapeInfos.inHessSparseUse=0;
     324                newTapeInfos->pTapeInfos.sJinfos.B=NULL;
     325                newTapeInfos->pTapeInfos.sJinfos.y=NULL;
     326                newTapeInfos->pTapeInfos.sJinfos.g=NULL;
     327                newTapeInfos->pTapeInfos.sJinfos.jr1d=NULL;
     328                newTapeInfos->pTapeInfos.sJinfos.Seed=NULL;
     329                newTapeInfos->pTapeInfos.sJinfos.JP=NULL;
     330                newTapeInfos->pTapeInfos.sJinfos.depen=0;
     331                newTapeInfos->pTapeInfos.sJinfos.nnz_in=0;
     332                newTapeInfos->pTapeInfos.sJinfos.seed_rows=0;
     333                newTapeInfos->pTapeInfos.sJinfos.seed_clms=0;
     334                newTapeInfos->pTapeInfos.sHinfos.Zppp=NULL;
     335                newTapeInfos->pTapeInfos.sHinfos.Yppp=NULL;
     336                newTapeInfos->pTapeInfos.sHinfos.Xppp=NULL;
     337                newTapeInfos->pTapeInfos.sHinfos.Upp=NULL;
     338                newTapeInfos->pTapeInfos.sHinfos.Hcomp=NULL;
     339                newTapeInfos->pTapeInfos.sHinfos.HP=NULL;
     340                newTapeInfos->pTapeInfos.sHinfos.g=NULL;
     341                newTapeInfos->pTapeInfos.sHinfos.hr=NULL;
     342                newTapeInfos->pTapeInfos.sHinfos.nnz_in=0;
     343                newTapeInfos->pTapeInfos.sHinfos.indep=0;
     344                newTapeInfos->pTapeInfos.sHinfos.p=0;
     345#endif
    303346                break;
    304347            }
Note: See TracChangeset for help on using the changeset viewer.