IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 15, 2005, 12:20:17 PM (21 years ago)
Author:
desonia
Message:

modifications due to psMetadataLookupPtr now incrementing the reference count.

File:
1 edited

Legend:

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

    r5513 r5519  
    88*  @author Robert Daniel DeSonia, MHPCC
    99*
    10 *  @version $Revision: 1.13 $ $Name: not supported by cvs2svn $
    11 *  @date $Date: 2005-11-14 23:44:35 $
     10*  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
     11*  @date $Date: 2005-11-15 22:19:29 $
    1212*
    1313*  Copyright 2005 Maui High Performance Computing Center, University of Hawaii
     
    8686    bool success = false;
    8787    // Get table format
    88     char* tableFormat = psMetadataLookupPtr(&success, eocMetadata, "psLib.eoc.precession.table.format");
     88    char* tableFormat = psMetadataLookupStr(&success, eocMetadata, "psLib.eoc.precession.table.format");
    8989    if(! success || tableFormat == NULL) {
    9090        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
     
    9393    }
    9494
    95     char* xTableName = psMetadataLookupPtr(&success, eocMetadata, "psLib.eoc.precession.table.file.x");
     95    char* xTableName = psMetadataLookupStr(&success, eocMetadata, "psLib.eoc.precession.table.file.x");
    9696    if(! success || xTableName == NULL) {
     97        psFree(tableFormat);
    9798        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    9899                "psLib.eoc.precession.x.file");
     
    100101    }
    101102
    102     char* yTableName = psMetadataLookupPtr(&success, eocMetadata, "psLib.eoc.precession.table.file.y");
     103    char* yTableName = psMetadataLookupStr(&success, eocMetadata, "psLib.eoc.precession.table.file.y");
    103104    if(! success || yTableName == NULL) {
     105        psFree(tableFormat);
     106        psFree(xTableName);
    104107        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    105108                "psLib.eoc.precession.y.file");
     
    107110    }
    108111
    109     char* sTableName = psMetadataLookupPtr(&success, eocMetadata, "psLib.eoc.precession.table.file.s");
     112    char* sTableName = psMetadataLookupStr(&success, eocMetadata, "psLib.eoc.precession.table.file.s");
    110113    if(! success || sTableName == NULL) {
     114        psFree(tableFormat);
     115        psFree(xTableName);
     116        psFree(yTableName);
    111117        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    112118                "psLib.eoc.precession.s.file");
     
    116122    yTable = psVectorsReadFromFile(yTableName, tableFormat);
    117123    sTable = psVectorsReadFromFile(sTableName, tableFormat);
     124    psFree(tableFormat);
     125    psFree(xTableName);
     126    psFree(yTableName);
     127    psFree(sTableName);
     128
    118129    if(xTable == NULL || yTable == NULL || sTable == NULL) {
    119130        // XXX: need to move the error message to the error messages file.
     
    131142    psVector* yCoeff = psMetadataLookupPtr(&success, eocMetadata, "psLib.eoc.precession.poly.y");
    132143    if(! success || yCoeff == NULL || yCoeff->type.type != PS_TYPE_F64) {
     144        psFree(xCoeff);
    133145        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    134146                "psLib.eoc.precession.poly.y");
     
    137149    psVector* sCoeff = psMetadataLookupPtr(&success, eocMetadata, "psLib.eoc.precession.poly.s");
    138150    if(! success || sCoeff == NULL || sCoeff->type.type != PS_TYPE_F64) {
     151        psFree(xCoeff);
     152        psFree(yCoeff);
    139153        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    140154                "psLib.eoc.precession.poly.s");
     
    147161    sPoly = psPolynomial1DAlloc(sCoeff->n, PS_POLYNOMIAL_ORD);
    148162    memcpy(sPoly->coeff, sCoeff->data.F64,PSELEMTYPE_SIZEOF(PS_TYPE_F64)*sCoeff->n);
     163
     164    psFree(xCoeff);
     165    psFree(yCoeff);
     166    psFree(sCoeff);
    149167
    150168    return true;
Note: See TracChangeset for help on using the changeset viewer.