IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6354 for trunk/psLib/src/fits


Ignore:
Timestamp:
Feb 7, 2006, 3:03:35 PM (20 years ago)
Author:
desonia
Message:

fixed a leak in psFits table reading and cleaned up things according to
the API Delta report.

-rdd
`

Location:
trunk/psLib/src/fits
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/fits/psFits.c

    r5511 r6354  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.51 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-11-14 22:18:30 $
     9 *  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2006-02-08 01:03:34 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    245245    }
    246246
    247     bool psFitsMoveLast(const psFits* fits)
     247    bool psFitsMoveLast(psFits* fits)
    248248    {
    249249        if (fits == NULL) {
  • trunk/psLib/src/fits/psFits.h

    r5511 r6354  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-11-14 22:18:30 $
     9 *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2006-02-08 01:03:34 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    115115*/
    116116bool psFitsMoveLast(
    117     const psFits* fits                 ///< the psFits object to move
     117    psFits* fits                       ///< the psFits object to move
    118118);
    119119
  • trunk/psLib/src/fits/psFitsHeader.c

    r5511 r6354  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-11-14 22:18:30 $
     9 *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2006-02-08 01:03:34 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    167167}
    168168
    169 psMetadata* psFitsReadHeaderSet(psMetadata* out,
    170                                 const psFits* fits)
     169psMetadata* psFitsReadHeaderSet(const psFits* fits)
    171170{
    172171    if (fits == NULL) {
    173172        psError(PS_ERR_BAD_PARAMETER_NULL, true,
    174173                PS_ERRORTEXT_psFits_NULL);
    175         psFree(out);
    176174        return NULL;
    177175    }
    178176
    179     if (out == NULL) {
    180         out = psMetadataAlloc();
    181         if (out == NULL) {
    182             psError(PS_ERR_UNKNOWN, false,
    183                     "Failed to allocate a new psMetadata container.");
    184             return NULL;
    185         }
    186     }
     177    psMetadata* out = psMetadataAlloc();
    187178
    188179    int size = psFitsGetSize(fits);
  • trunk/psLib/src/fits/psFitsHeader.h

    r5511 r6354  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-11-14 22:18:30 $
     9 *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2006-02-08 01:03:34 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3737 */
    3838psMetadata* psFitsReadHeaderSet(
    39     psMetadata* out,
    40     ///< The psMetadata to add the header data via psMetadata items.  If null, a
    41     ///< new psMetadata is created.  The keys of the psMetadata are the extension names
    42     ///< of the cooresponding HDUs.
    43 
    4439    const psFits* fits                       ///< the psFits object
    4540);
  • trunk/psLib/src/fits/psFitsTable.c

    r6314 r6354  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2006-02-03 00:11:58 $
     9 *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2006-02-08 01:03:34 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    2323#include "psTrace.h"
    2424#include "psVector.h"
     25#include "config.h"
    2526
    2627#define MAX_STRING_LENGTH 256  // maximum length string for FITS routines
     
    309310        if (status == 0) {
    310311
    311             #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE) \
     312            #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE, VECTYPE) \
    312313        case FITSTYPE: { \
    313314                if (repeat == 1) { \
     
    322323                                  "", (ps##TYPE)value); \
    323324                } else { \
    324                     psVector* value = psVectorAlloc(repeat,PS_DATA_##TYPE); \
     325                    NATIVETYPE* value = psAlloc(sizeof(NATIVETYPE)*repeat); \
     326                    psVector* vec = psVectorAlloc(repeat,PS_TYPE_##VECTYPE); \
    325327                    int anynul = 0; \
    326328                    fits_read_col(fits->fd, FITSTYPE, col,row+1, \
    327                                   1, repeat, NULL, value->data.U8, &anynul, &status); \
    328                     psMetadataAdd(data,PS_LIST_TAIL, name, \
    329                                   PS_DATA_VECTOR, \
    330                                   "", value); \
     329                                  1, repeat, NULL, value, &anynul, &status); \
     330                    for (int lcv = 0; lcv < repeat; lcv++) { \
     331                        vec->data.VECTYPE[lcv] = value[lcv]; \
     332                    } \
     333                    psMetadataAdd(data,PS_LIST_TAIL, name, PS_DATA_VECTOR, "", vec); \
    331334                    psFree(value); \
     335                    psFree(vec); \
    332336                } \
    333337                break; \
     
    338342            case TSHORT:
    339343            case TLONGLONG:
    340                 READ_TABLE_ROW_CASE(TLONG, long, S32)
    341                 READ_TABLE_ROW_CASE(TFLOAT, float, F32)
    342                 READ_TABLE_ROW_CASE(TDOUBLE, double, F64)
    343                 READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL);
     344                READ_TABLE_ROW_CASE(TLONG, long, S32,S32)
     345                READ_TABLE_ROW_CASE(TFLOAT, float, F32,F32)
     346                READ_TABLE_ROW_CASE(TDOUBLE, double, F64,F64)
     347                READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL,S8);
    344348            case TSTRING: {
    345349                    char* value = psAlloc(repeat+1);
Note: See TracChangeset for help on using the changeset viewer.