IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 35524


Ignore:
Timestamp:
May 7, 2013, 8:43:26 AM (13 years ago)
Author:
eugene
Message:

fix md collisions / double free

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20130419/pswarp/src/pswarpUpdateStatistics.c

    r35521 r35524  
    4242        const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME");
    4343
    44         psMetadata *chipStats = psMetadataAlloc ();
    45         psMetadataAdd (fpaStats, PS_LIST_TAIL, chipName, PS_DATA_METADATA, "chip stats folder", chipStats);
     44        psMetadata *chipStats = psMetadataLookupPtr (&status, fpaStats, chipName);
     45        if (!chipStats) {
     46          chipStats = psMetadataAlloc ();
     47          psMetadataAdd (fpaStats, PS_LIST_TAIL, chipName, PS_DATA_METADATA, "chip stats folder", chipStats);
     48          psFree (chipStats);
     49        }
    4650
    4751        pmCell *cell;
     
    5357            const char *cellName = psMetadataLookupStr(NULL, cell->concepts, "CELL.NAME");
    5458
    55             psMetadata *cellStats = psMetadataAlloc ();
    56             psMetadataAdd (chipStats, PS_LIST_TAIL, cellName, PS_DATA_METADATA, "cell stats folder", cellStats);
     59            psMetadata *cellStats = psMetadataLookupPtr (&status, chipStats, cellName);
     60            if (!cellStats) {
     61              cellStats = psMetadataAlloc ();
     62              psMetadataAdd (chipStats, PS_LIST_TAIL, cellName, PS_DATA_METADATA, "cell stats folder", cellStats);
     63              psFree (cellStats);
     64            }
    5765
    5866            // process each of the readouts
     
    6876                psStringAppend (&readoutName, "READOUT.%02d", view->readout);
    6977
    70                 psMetadata *readoutStats = psMetadataAlloc ();
    71                 psMetadataAdd (cellStats, PS_LIST_TAIL, readoutName, PS_DATA_METADATA, "readout stats folder", readoutStats);
     78                psMetadata *readoutStats = psMetadataLookupPtr (&status, cellStats, readoutName);
     79                if (!readoutStats) {
     80                  readoutStats = psMetadataAlloc ();
     81                  psMetadataAdd (cellStats, PS_LIST_TAIL, readoutName, PS_DATA_METADATA, "readout stats folder", readoutStats);
     82                  psFree (readoutStats);
     83                }
    7284
    7385                if (!pswarpPixelsLit(readout, readoutStats, config)) {
     
    118130                  psFree(headerName);
    119131                }
    120                 psFree (readoutStats);
    121132                psFree (readoutName);
    122133            }
     
    133144            trimsec->x0 = trimsec->x1 = trimsec->y0 = trimsec->y1 = 0; ///< All pixels
    134145
    135             psFree (cellStats);
    136146        }
    137         psFree (chipStats);
    138147    }
    139148
Note: See TracChangeset for help on using the changeset viewer.