IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 33460


Ignore:
Timestamp:
Mar 9, 2012, 11:56:26 AM (14 years ago)
Author:
eugene
Message:

free tables and close files when loading BrightCatalog

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20111122/Ohana/src/relphot/src/BrightCatalog.c

    r33459 r33460  
    2626  FTable ftable;
    2727
     28  header.buffer = NULL;
     29  matrix.buffer = NULL;
     30  ftable.buffer = NULL;
     31  theader.buffer = NULL;
    2832  BrightCatalog *catalog = NULL;
    2933
     
    3135  if (!f) {
    3236    fprintf (stderr, "ERROR: cannot open image subset file %s\n", filename);
    33     return NULL;
     37    goto escape;
    3438  }
    3539
     
    3741  if (!gfits_fread_header (f, &header)) {
    3842    if (VERBOSE) fprintf (stderr, "can't read image subset header\n");
    39     fclose (f);
    40     return NULL;
     43    goto escape;
    4144  }
    4245  if (!gfits_fread_matrix (f, &matrix, &header)) {
    4346    if (VERBOSE) fprintf (stderr, "can't read image subset matrix\n");
    44     gfits_free_header (&header);
    45     fclose (f);
    46     return NULL;
     47    goto escape;
    4748  }
    4849
     
    5657  {
    5758    // load data for this header
    58     if (!gfits_load_header (f, &theader)) return (NULL);
     59    if (!gfits_load_header (f, &theader)) goto escape;
    5960
    6061    // read the fits table bytes
    61     if (!gfits_fread_ftable_data (f, &ftable, FALSE)) return (NULL);
     62    if (!gfits_fread_ftable_data (f, &ftable, FALSE)) goto escape;
    6263 
    6364    // need to create and assign to flat-field correction
     
    7879    GET_COLUMN(catID,     "CAT_ID",     int);
    7980    GET_COLUMN(photcode,  "PHOTCODE",   short);
    80     // XXX free the fits table data here
     81    gfits_free_header (&theader);
     82    gfits_free_table  (&ftable);
    8183
    8284    MeasureTiny *measure = NULL;
     
    127129
    128130    // load data for this header
    129     if (!gfits_load_header (f, &theader)) return (NULL);
     131    if (!gfits_load_header (f, &theader)) goto escape;
    130132
    131133    // read the fits table bytes
    132     if (!gfits_fread_ftable_data (f, &ftable, FALSE)) return (NULL);
     134    if (!gfits_fread_ftable_data (f, &ftable, FALSE)) goto escape;
    133135 
    134136    // need to create and assign to flat-field correction
     
    139141    GET_COLUMN(flags,         "FLAGS",       int);
    140142    GET_COLUMN(catID,         "CAT_ID",      int);
    141     // XXX free the fits table data here
     143    gfits_free_header (&theader);
     144    gfits_free_table  (&ftable);
    142145
    143146    AverageTiny *average = NULL;
     
    168171
    169172    // load data for this header
    170     if (!gfits_load_header (f, &theader)) return (NULL);
     173    if (!gfits_load_header (f, &theader)) goto escape;
    171174
    172175    // read the fits table bytes
    173     if (!gfits_fread_ftable_data (f, &ftable, FALSE)) return (NULL);
     176    if (!gfits_fread_ftable_data (f, &ftable, FALSE)) goto escape;
    174177 
    175178    // need to create and assign to flat-field correction
     
    182185    GET_COLUMN(M_20,  "MAG_20",   short);
    183186    GET_COLUMN(M_80,  "MAG_80",   short);
    184     // XXX free the fits table data here
     187    gfits_free_header (&theader);
     188    gfits_free_table  (&ftable);
    185189
    186190    SecFilt *secfilt = NULL;
     
    210214  }
    211215
    212   // close files
     216  gfits_free_header (&header);
     217  gfits_free_matrix (&matrix);
     218  if (catalog) free (catalog);
     219
     220  fclose (f);
    213221
    214222  return catalog;
     223
     224escape:
     225  gfits_free_header (&header);
     226  gfits_free_matrix (&matrix);
     227  gfits_free_header (&theader);
     228  gfits_free_table  (&ftable);
     229  if (catalog) free (catalog);
     230
     231  fclose (f);
     232  return NULL;
    215233}
    216234
Note: See TracChangeset for help on using the changeset viewer.