IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 28078


Ignore:
Timestamp:
May 23, 2010, 11:43:01 AM (16 years ago)
Author:
eugene
Message:

free pmHDU elements when freeing pmFPA/Chip/etc data (is this the right solution?)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/psModules.20100523/src/camera/pmFPA.c

    r26893 r28078  
    1010
    1111#include "pmHDU.h"
     12#include "pmHDUUtils.h"
    1213#include "pmFPA.h"
    1314#include "pmFPALevel.h"
     
    198199        pmReadoutFreeData(cell->readouts->data[i]);
    199200    }
    200     if (cell->hdu) {
    201         psFree(cell->hdu->images);
    202         psFree(cell->hdu->variances);
    203         psFree(cell->hdu->masks);
    204         // psFree(cell->hdu->header);
    205 
    206         cell->hdu->images = NULL;
    207         cell->hdu->variances = NULL;
    208         cell->hdu->masks = NULL;
    209         // cell->hdu->header = NULL;
    210     }
     201    pmHDU *hdu = pmHDUFromCell(cell);
     202    if (hdu) {
     203        psFree(hdu->images);
     204        psFree(hdu->variances);
     205        psFree(hdu->masks);
     206    }     
     207
     208    // if (cell->hdu) {
     209    //     psFree(cell->hdu->images);
     210    //     psFree(cell->hdu->variances);
     211    //     psFree(cell->hdu->masks);
     212    //     // psFree(cell->hdu->header);
     213    //
     214    //     cell->hdu->images = NULL;
     215    //     cell->hdu->variances = NULL;
     216    //     cell->hdu->masks = NULL;
     217    //     // cell->hdu->header = NULL;
     218    // }
    211219}
    212220
     
    220228        pmCellFreeData(chip->cells->data[i]);
    221229    }
    222     if (chip->hdu) {
    223         psFree(chip->hdu->images);
    224         psFree(chip->hdu->variances);
    225         psFree(chip->hdu->masks);
    226         // psFree(chip->hdu->header);
    227 
    228         chip->hdu->images = NULL;
    229         chip->hdu->variances = NULL;
    230         chip->hdu->masks = NULL;
    231         // chip->hdu->header = NULL;
    232     }
     230    pmHDU *hdu = pmHDUFromChip(chip);
     231    if (hdu) {
     232        psFree(hdu->images);
     233        psFree(hdu->variances);
     234        psFree(hdu->masks);
     235    }     
     236
     237    // if (chip->hdu) {
     238    //     psFree(chip->hdu->images);
     239    //     psFree(chip->hdu->variances);
     240    //     psFree(chip->hdu->masks);
     241    //     // psFree(chip->hdu->header);
     242    //
     243    //     chip->hdu->images = NULL;
     244    //     chip->hdu->variances = NULL;
     245    //     chip->hdu->masks = NULL;
     246    //     // chip->hdu->header = NULL;
     247    // }
    233248}
    234249
     
    242257        pmChipFreeData(fpa->chips->data[i]);
    243258    }
    244     if (fpa->hdu) {
    245         psFree(fpa->hdu->images);
    246         psFree(fpa->hdu->variances);
    247         psFree(fpa->hdu->masks);
    248         // psFree(fpa->hdu->header);
    249 
    250         fpa->hdu->images = NULL;
    251         fpa->hdu->variances = NULL;
    252         fpa->hdu->masks = NULL;
    253         // fpa->hdu->header = NULL;
    254     }
     259    pmHDU *hdu = pmHDUFromFPA(fpa);
     260    if (hdu) {
     261        psFree(hdu->images);
     262        psFree(hdu->variances);
     263        psFree(hdu->masks);
     264    }     
     265
     266    // if (fpa->hdu) {
     267    //     psFree(fpa->hdu->images);
     268    //     psFree(fpa->hdu->variances);
     269    //     psFree(fpa->hdu->masks);
     270    //     // psFree(fpa->hdu->header);
     271    //
     272    //     fpa->hdu->images = NULL;
     273    //     fpa->hdu->variances = NULL;
     274    //     fpa->hdu->masks = NULL;
     275    //     // fpa->hdu->header = NULL;
     276    // }
    255277}
    256278
Note: See TracChangeset for help on using the changeset viewer.