IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 21, 2006, 7:46:06 AM (20 years ago)
Author:
rhl
Message:

1/ The p_psMemAllocatePersistent() block didn't cover enough of
the function
2/ If memory is already persistent, don't unset this (i.e. save initial
state)
3/ There's no need to make psError calls non-persistent. Persistent
memory can be freed (and in this case will be automatically by
psError(..., true, ...)); it just doesn't show up as a leak unless
you ask psMemCheckLeaks to show you leaked persistent memory

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astro/psTime.c

    r7547 r7608  
    1010 *  @author Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.85 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2006-06-13 23:56:11 $
     12 *  @version $Revision: 1.86 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2006-06-21 17:46:06 $
    1414 *
    1515 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    267267    }
    268268
    269     p_psMemAllocatePersistent(true);    // All memory allocated below is "persistent"
     269    const bool initialPersistence =
     270        p_psMemAllocatePersistent(true); // All memory allocated below is "persistent"
    270271
    271272    // Read config file
     
    280281    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n");
    281282    if(metadataItem == NULL) {
    282         p_psMemAllocatePersistent(false);
     283        p_psMemAllocatePersistent(initialPersistence);
    283284        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    284285                "psLib.time.tables.n");
     
    290291    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from");
    291292    if(metadataItem == NULL) {
    292         p_psMemAllocatePersistent(false);
     293        p_psMemAllocatePersistent(initialPersistence);
    293294        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    294295                "psLib.time.tables.from");
     
    297298    tablesFrom = psVectorCopy(tablesFrom, metadataItem->data.V, PS_TYPE_F64);
    298299    if(tablesFrom->n != numTables) {
    299         p_psMemAllocatePersistent(false);
     300        p_psMemAllocatePersistent(initialPersistence);
    300301        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesFrom->n, numTables);
    301302        psFree(tablesFrom);
     
    306307    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.to");
    307308    if(metadataItem == NULL) {
    308         p_psMemAllocatePersistent(false);
     309        p_psMemAllocatePersistent(initialPersistence);
    309310        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    310311                "psLib.time.tables.to");
     
    313314    }
    314315    tablesTo = psVectorCopy(tablesTo, metadataItem->data.V, PS_TYPE_F64);
    315     p_psMemAllocatePersistent(false);   // Turn off persistency
    316316    if(tablesTo->n != numTables) {
    317         p_psMemAllocatePersistent(false);
     317        p_psMemAllocatePersistent(initialPersistence);
    318318        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesTo->n, numTables);
    319319        psFree(tablesFrom);
     
    325325    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.index");
    326326    if(metadataItem == NULL) {
    327         p_psMemAllocatePersistent(false);
     327        p_psMemAllocatePersistent(initialPersistence);
    328328        psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    329329                "psLib.time.tables.index");
     
    334334    tablesIndex = psVectorCopy(tablesIndex, metadataItem->data.V, PS_TYPE_S32);
    335335    if(tablesIndex->n != numTables) {
    336         p_psMemAllocatePersistent(false);
     336        p_psMemAllocatePersistent(initialPersistence);
    337337        psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_BAD_VECTOR,tablesIndex->n,numTables);
    338338        psFree(tablesFrom);
     
    345345    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir");
    346346    if(metadataItem == NULL) {
    347         p_psMemAllocatePersistent(false);
     347        p_psMemAllocatePersistent(initialPersistence);
    348348        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    349349                "psLib.time.tables.dir");
     
    358358    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files");
    359359    if(metadataItem == NULL) {
    360         p_psMemAllocatePersistent(false);
     360        p_psMemAllocatePersistent(initialPersistence);
    361361        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    362362                "psLib.time.tables.files");
     
    373373    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.format");
    374374    if(metadataItem == NULL) {
    375         p_psMemAllocatePersistent(false);
     375        p_psMemAllocatePersistent(initialPersistence);
    376376        psError(PS_ERR_BAD_PARAMETER_VALUE,true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    377377                "psLib.time.tables.format");
     
    403403        tableFormat = getToken(&formatPtr,",",&status);
    404404        if(tableFormat == NULL) {
    405             p_psMemAllocatePersistent(false);
    406405            psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    407406                    "psLib.time.tables.format");
    408             p_psMemAllocatePersistent(true);
    409407        }
    410408
     
    414412            numLines = psLookupTableRead(table);
    415413        } else {
    416             p_psMemAllocatePersistent(false);
    417414            psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables);
    418             p_psMemAllocatePersistent(true);
    419415        }
    420416
     
    428424                foundTable = true;
    429425            } else if(foundTable==false && j==numTables-1) {
    430                 p_psMemAllocatePersistent(false);
    431426                psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, j, numTables);
    432                 p_psMemAllocatePersistent(true);
    433427            }
    434428        }
     
    441435    }
    442436
    443     p_psMemAllocatePersistent(false);
     437    p_psMemAllocatePersistent(initialPersistence);
    444438
    445439    if(numTables != i) {
Note: See TracChangeset for help on using the changeset viewer.