Changeset 512


Ignore:
Timestamp:
May 15, 2014 6:26:37 AM (6 years ago)
Author:
kulshres
Message:

initialize persistant tape infos properly in all cases

it seems in certain erroneous cases this structure was never
initialised to contain NULL. However all cleanUp routines
check for NULL pointers before freeing them.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

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

Legend:

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

    r510 r512  
    356356                                    newTapeInfos->pTapeInfos.sHinfos.p,
    357357                                    newTapeInfos->pTapeInfos.sHinfos.indep);   
    358                 newTapeInfos->pTapeInfos.inJacSparseUse=0;
    359                 newTapeInfos->pTapeInfos.inHessSparseUse=0;
    360358                newTapeInfos->pTapeInfos.sJinfos.B=NULL;
    361359                newTapeInfos->pTapeInfos.sJinfos.y=NULL;
     
    392390    newTapeInfos->traceFlag=1;
    393391    newTapeInfos->inUse=1;
    394 #ifdef SPARSE
    395     newTapeInfos->pTapeInfos.inJacSparseUse=0;
    396     newTapeInfos->pTapeInfos.inHessSparseUse=0;
    397     newTapeInfos->pTapeInfos.sJinfos.B=NULL;
    398     newTapeInfos->pTapeInfos.sJinfos.y=NULL;
    399     newTapeInfos->pTapeInfos.sJinfos.g=NULL;
    400     newTapeInfos->pTapeInfos.sJinfos.jr1d=NULL;
    401     newTapeInfos->pTapeInfos.sJinfos.Seed=NULL;
    402     newTapeInfos->pTapeInfos.sJinfos.JP=NULL;
    403     newTapeInfos->pTapeInfos.sJinfos.depen=0;
    404     newTapeInfos->pTapeInfos.sJinfos.nnz_in=0;
    405     newTapeInfos->pTapeInfos.sJinfos.seed_rows=0;
    406     newTapeInfos->pTapeInfos.sJinfos.seed_clms=0;
    407     newTapeInfos->pTapeInfos.sHinfos.Zppp=NULL;
    408     newTapeInfos->pTapeInfos.sHinfos.Yppp=NULL;
    409     newTapeInfos->pTapeInfos.sHinfos.Xppp=NULL;
    410     newTapeInfos->pTapeInfos.sHinfos.Upp=NULL;
    411     newTapeInfos->pTapeInfos.sHinfos.Hcomp=NULL;
    412     newTapeInfos->pTapeInfos.sHinfos.HP=NULL;
    413     newTapeInfos->pTapeInfos.sHinfos.g=NULL;
    414     newTapeInfos->pTapeInfos.sHinfos.hr=NULL;
    415     newTapeInfos->pTapeInfos.sHinfos.nnz_in=0;
    416     newTapeInfos->pTapeInfos.sHinfos.indep=0;
    417     newTapeInfos->pTapeInfos.sHinfos.p=0;
    418 #endif
    419392
    420393    newTapeInfos->stats[OP_BUFFER_SIZE] =
     
    572545    tapeInfos->traceFlag=1;
    573546    tapeInfos->inUse=0;
    574 #ifdef SPARSE
    575     tapeInfos->pTapeInfos.inJacSparseUse=0;
    576     tapeInfos->pTapeInfos.inHessSparseUse=0;
    577 #endif
    578547    tapeInfos->tapingComplete = 1;
    579548    read_tape_stats(tapeInfos);
     
    11871156#endif /* _OPENMP */
    11881157
     1158static void clearPersistantTapeInfos(TapeInfos* newTapeInfos) {
     1159    char *ptr;
     1160    ptr = (char*) &(newTapeInfos->pTapeInfos);
     1161    for (unsigned int i=0; i < sizeof(PersistantTapeInfos); ++i)
     1162        ptr[i] = 0;
     1163}
     1164
    11891165TapeInfos::TapeInfos() {
    11901166    initTapeInfos(this);
     1167    clearPersistantTapeInfos(this);
    11911168}
    11921169
    11931170TapeInfos::TapeInfos(short _tapeID) {
    11941171    initTapeInfos(this);
     1172    clearPersistantTapeInfos(this);
    11951173    tapeID = _tapeID;
    11961174    pTapeInfos.op_fileName = createFileName(tapeID, OPERATIONS_TAPE);
  • trunk/ADOL-C/src/taping_p.h

    r502 r512  
    173173
    174174#ifdef SPARSE
    175     /* sparse derivative matrices */
    176 
    177     int inJacSparseUse;
    178     int inHessSparseUse;
    179 
    180175    /* sparse Jacobian matrices */
    181176
Note: See TracChangeset for help on using the changeset viewer.