IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 13419


Ignore:
Timestamp:
May 18, 2007, 3:22:48 AM (19 years ago)
Author:
rhl
Message:

Fix memory leaks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphotApResid.c

    r12792 r13419  
    132132    stats->max = 3.0;
    133133
     134#define P_APTREND_SWITCH_CLEANUP        /* Cleanup memory on error in ApTrendOption switch */ \
     135    psFree(psf->growth); psf->growth = NULL; \
     136    psFree(mask); \
     137    psFree(xPos); \
     138    psFree(yPos); \
     139    psFree(flux); \
     140    psFree(r2rflux); \
     141    psFree(apResid); \
     142    psFree(dMag); \
     143    psFree(stats)
     144
    134145    // no correction
    135146    switch (ApTrendOption) {
     
    143154        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    144155            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting nothing");
     156            P_APTREND_SWITCH_CLEANUP;
    145157            return false;
    146158        }
     
    150162        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    151163            psError(PSPHOT_ERR_PHOTOM, false, "Fitting aperture correction");
     164            P_APTREND_SWITCH_CLEANUP;
    152165            return false;
    153166        }
     
    159172        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    160173            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting nothing");
     174            P_APTREND_SWITCH_CLEANUP;
    161175            return false;
    162176        }
     
    166180        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    167181            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting sky bias");
     182            P_APTREND_SWITCH_CLEANUP;
    168183            return false;
    169184        }
     
    175190        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    176191            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting nothing");
     192            P_APTREND_SWITCH_CLEANUP;
    177193            return false;
    178194        }
     
    182198        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    183199            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting sky bias");
     200            P_APTREND_SWITCH_CLEANUP;
    184201            return false;
    185202        }
     
    189206        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    190207            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting skysat");
     208            P_APTREND_SWITCH_CLEANUP;
    191209            return false;
    192210        }
     
    198216        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    199217            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting nothing");
     218            P_APTREND_SWITCH_CLEANUP;
    200219            return false;
    201220        }
     
    205224        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    206225            psError(PSPHOT_ERR_PHOTOM, false, "fitting, XY_LIN");
     226            P_APTREND_SWITCH_CLEANUP;
    207227            return false;
    208228        }
     
    214234        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    215235            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting nothing");
     236            P_APTREND_SWITCH_CLEANUP;
    216237            return false;
    217238        }
     
    221242        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    222243            psError(PSPHOT_ERR_PHOTOM, false, "Fitting XY_QUAD");
     244            P_APTREND_SWITCH_CLEANUP;
    223245            return false;
    224246        }
     
    230252        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    231253            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting nothing");
     254            P_APTREND_SWITCH_CLEANUP;
    232255            return false;
    233256        }
     
    237260        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    238261            psError(PSPHOT_ERR_PHOTOM, false, "Fitting sky xy_lin");
     262            P_APTREND_SWITCH_CLEANUP;
    239263            return false;
    240264        }
     
    246270        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    247271            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting nothing");
     272            P_APTREND_SWITCH_CLEANUP;
    248273            return false;
    249274        }
     
    253278        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    254279            psError(PSPHOT_ERR_PHOTOM, false, "clipping, fitting sky bias");
     280            P_APTREND_SWITCH_CLEANUP;
    255281            return false;
    256282        }
     
    260286        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    261287            psError(PSPHOT_ERR_PHOTOM, false, "Fitting skyset xy_lin");
     288            P_APTREND_SWITCH_CLEANUP;
    262289            return false;
    263290        }
     
    269296        if (!psVectorClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    270297            psError(PSPHOT_ERR_PHOTOM, false, "Failed to measure apTrend");
     298            P_APTREND_SWITCH_CLEANUP;
    271299            return false;
    272300        }
     
    276304        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    277305            psError(PSPHOT_ERR_PHOTOM, false, "fitting skyBias");
     306            P_APTREND_SWITCH_CLEANUP;
    278307            return false;
    279308        }
     
    283312        if (!psVectorChiClipFitPolynomial4D (psf->ApTrend, stats, mask, PSFTRY_MASK_ALL, apResid, dMag, xPos, yPos, r2rflux, flux)) {
    284313            psError(PSPHOT_ERR_PHOTOM, false, "fitting all");
     314            P_APTREND_SWITCH_CLEANUP;
    285315            return false;
    286316        }
     
    290320        return false;
    291321    }
    292 
     322#undef P_APTREND_SWITCH_CLEANUP
     323   
    293324    // construct the fitted values and the residuals
    294325    psVector *fit   = psPolynomial4DEvalVector (psf->ApTrend, xPos, yPos, r2rflux, flux);
Note: See TracChangeset for help on using the changeset viewer.