Changeset 8338 for trunk/ppStats/src/ppStatsLoop.c
- Timestamp:
- Aug 14, 2006, 5:13:05 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/ppStats/src/ppStatsLoop.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppStats/src/ppStatsLoop.c
r8337 r8338 47 47 } 48 48 49 static void addToHierarchy(psMetadata *source, // Source to add 50 psMetadata *target, // Target to which to add 51 const char *name, // Name of source 52 const char *comment // Comment for source 53 ) 54 { 55 if (psListLength(source->list) > 0 && !psMetadataLookup(target, name)) { 56 psMetadataAdd(target, PS_LIST_TAIL, name, PS_DATA_METADATA, 57 comment, source); 58 } 59 psFree(source); // Drop reference 60 return; 61 } 62 49 63 50 64 psMetadata *ppStatsLoop(psMetadata *fpaResults, // Metadata to hold the FPA results … … 96 110 } 97 111 98 psMetadata *chipResults = psMetadataLookupMD(&mdok, fpaResults, chipName); // Chip-level results 112 // Chip-level results 113 psMetadata *chipResults = psMemIncrRefCounter(psMetadataLookupMD(&mdok, fpaResults, chipName)); 99 114 if (!mdok || !chipResults) { 100 115 chipResults = psMetadataAlloc(); … … 129 144 } 130 145 131 psMetadata *cellResults = psMetadataLookupMD(&mdok, chipResults, cellName); // Cell-level results 146 // Cell-level results 147 psMetadata *cellResults = psMemIncrRefCounter(psMetadataLookupMD(&mdok, chipResults, cellName)); 132 148 if (!mdok || !cellResults) { 133 149 cellResults = psMetadataAlloc(); … … 136 152 if (psListLength(data->headers) > 0 && cell->hdu) { 137 153 if (fits && !pmCellReadHeader(cell, fits)) { 154 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 138 155 continue; 139 156 } … … 143 160 if (psListLength(data->concepts) > 0) { 144 161 if (fits && !pmCellReadHeader(cell, fits)) { 162 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 145 163 continue; 146 164 } … … 155 173 "Results for cell", cellResults); 156 174 } 175 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 157 176 continue; 158 177 } … … 160 179 pmHDU *hdu = pmHDUFromCell(cell); // HDU for cell 161 180 if (!hdu || hdu->blankPHU) { 181 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 162 182 continue; 163 183 } … … 166 186 psLogMsg(__func__, PS_LOG_WARN, "Unable to read chip %s cell %s\n", chipName, cellName); 167 187 pmCellFreeData(cell); 188 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 168 189 continue; 169 190 } … … 171 192 psArray *readouts = cell->readouts; // Array of component readouts 172 193 if (readouts->n == 0) { 173 pmCellFreeData(cell); 194 if (fits) { 195 pmCellFreeData(cell); 196 } 197 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 174 198 continue; 175 199 } … … 182 206 psLogMsg(__func__, PS_LOG_WARN, "No image associated with readout in chip %s cell %s --- " 183 207 "ignored.\n", chipName, cellName); 184 pmCellFreeData(cell); 208 if (fits) { 209 pmCellFreeData(cell); 210 } 211 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 185 212 continue; 186 213 } … … 191 218 psLogMsg(__func__, PS_LOG_WARN, "Unable to perform statistics on chip %s cell %s --- " 192 219 "ignored.\n", chipName, cellName); 193 pmCellFreeData(cell); 220 if (fits) { 221 pmCellFreeData(cell); 222 } 223 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 194 224 continue; 195 225 } … … 221 251 psFree(sampleValues); 222 252 psFree(sampleMask); 223 pmCellFreeData(cell); 253 if (fits) { 254 pmCellFreeData(cell); 255 } 256 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 224 257 continue; 225 258 } … … 249 282 250 283 // Add the cell results to the chip 251 if (psListLength(cellResults->list) > 0 && !psMetadataLookup(chipResults, cellName)) { 252 psMetadataAdd(chipResults, PS_LIST_TAIL, cellName, PS_DATA_METADATA, 253 "Results for cell", cellResults); 254 psFree(cellResults); 255 } 256 284 addToHierarchy(cellResults, chipResults, cellName, "Results for cell"); 257 285 if (fits) { 258 286 pmCellFreeData(cell); 259 287 } 260 288 } 289 290 addToHierarchy(chipResults, fpaResults, chipName, "Results for chip"); 261 291 if (fits) { 262 292 pmChipFreeData(chip); 263 293 } 264 294 265 if (psListLength(chipResults->list) > 0 && !psMetadataLookup(fpaResults, chipName)) {266 psMetadataAdd(fpaResults, PS_LIST_TAIL, chipName, PS_DATA_METADATA,267 "Results for chip", chipResults);268 psFree(chipResults);269 }270 295 } 271 296 if (fits) { 272 297 pmFPAFreeData(fpa); 273 298 } 274 275 299 psFree(headersIter); 276 300 psFree(conceptsIter);
Note:
See TracChangeset
for help on using the changeset viewer.
