Changeset 5052
- Timestamp:
- Sep 14, 2005, 9:21:41 AM (21 years ago)
- Location:
- trunk/psModules
- Files:
-
- 2 edited
-
src/pmAstrometry.c (modified) (8 diffs)
-
test/tst_pmAstrometry.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/pmAstrometry.c
r4997 r5052 8 8 * @author GLG, MHPCC 9 9 * 10 * @version $Revision: 1. 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2005-09-1 2 20:38:25$10 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2005-09-14 19:21:41 $ 12 12 * 13 13 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 48 48 XXX: Is this the correct way to free database structs? 49 49 50 XXX: The meory dereferencing is not quite right with these functions. If I 50 51 52 XXX: The memory dereferencing is not quite right with these functions. If I 51 53 call the alloc functions with non-NULL pointers, there will be memory leaks. 52 54 *****************************************************************************/ … … 60 62 psFree(fpa->analysis); 61 63 psFree(fpa->camera); 64 // 65 // Set the parent to NULL in all fpa->chips before psFree(fpa->chips) 66 // in order to avoid memory reference counter problems. 67 // 68 for (psS32 i = 0 ; i < fpa->chips->n ; i++) { 69 pmChip *tmpChip = (pmChip *) fpa->chips->data[i]; 70 tmpChip->parent = NULL; 71 } 62 72 psFree(fpa->chips); 63 73 psFree(fpa->header); … … 73 83 psFree(chip->concepts); 74 84 psFree(chip->analysis); 85 // 86 // Set the parent to NULL in all chip->cells before psFree(chip->cells) 87 // in order to avoid memory reference counter problems. 88 // 89 for (psS32 i = 0 ; i < chip->cells->n ; i++) { 90 pmCell *tmpCell = (pmCell *) chip->cells->data[i]; 91 tmpCell->parent = NULL; 92 } 75 93 psFree(chip->cells); 76 94 psFree(chip->parent); … … 89 107 psFree(cell->concepts); 90 108 psFree(cell->analysis); 109 // 110 // Set the parent to NULL in all cell->readouts before psFree(cell->readouts) 111 // in order to avoid memory reference counter problems. 112 // 113 for (psS32 i = 0 ; i < cell->readouts->n ; i++) { 114 pmReadout *tmpReadout = (pmReadout *) cell->readouts->data[i]; 115 tmpReadout->parent = NULL; 116 } 91 117 psFree(cell->readouts); 92 118 psFree(cell->parent); … … 122 148 tmpReadout->concepts = psMetadataAlloc(); 123 149 tmpReadout->parent = cell; 124 psMemIncrRefCounter((psPtr) cell);125 150 if (cell != NULL) { 126 151 cell->readouts = psArrayAdd(cell->readouts, 1, (psPtr) tmpReadout); … … 143 168 tmpCell->readouts = psArrayAlloc(0); 144 169 tmpCell->parent = chip; 145 psMemIncrRefCounter((psPtr) chip);146 170 if (chip != NULL) { 147 171 chip->cells = psArrayAdd(chip->cells, 1, (psPtr) tmpCell); … … 168 192 tmpChip->cells = psArrayAlloc(0); 169 193 tmpChip->parent = fpa; 170 psMemIncrRefCounter((psPtr) fpa);171 194 if (fpa != NULL) { 172 195 fpa->chips = psArrayAdd(fpa->chips, 1, (psPtr) tmpChip); 173 psMemIncrRefCounter((psPtr) tmpChip);174 196 } 175 197 tmpChip->valid = false; -
trunk/psModules/test/tst_pmAstrometry.c
r5028 r5052 5 5 * @author George Gusciora, MHPCC 6 6 * 7 * @version $Revision: 1. 1$ $Name: not supported by cvs2svn $8 * @date $Date: 2005-09-1 3 20:54:04$7 * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2005-09-14 19:21:41 $ 9 9 * 10 10 * XXX: The meory dereferencing is not quite right with these functions. … … 110 110 { 111 111 // XXX: Do something more with these arguments. 112 /* 113 const psMetadata *camera = psMetadataAlloc(); 114 psDB *db = NULL; 115 pmFPA* fpa = pmFPAAlloc(camera, db); 116 if (fpa == NULL) { 117 psLogMsg(__func__,PS_LOG_ERROR, "pmFPAAlloc returned a NULL."); 118 return 1; 119 } 120 */ 121 pmFPA* fpa = NULL; 112 const psMetadata *camera = psMetadataAlloc(); 113 psDB *db = NULL; 114 pmFPA* fpa = pmFPAAlloc(camera, db); 115 if (fpa == NULL) { 116 psLogMsg(__func__,PS_LOG_ERROR, "pmFPAAlloc returned a NULL."); 117 return 1; 118 } 119 122 120 pmChip *chip = pmChipAlloc(fpa); 123 121 if (chip == NULL) { … … 186 184 } 187 185 188 // psFree(camera);186 psFree(fpa); 189 187 psFree(chip); 190 psFree( fpa);188 psFree(camera); 191 189 192 190 return 0; 193 191 } 194 192 195 196 193 static psS32 testCellAlloc(void) 197 194 { 198 195 // XXX: Do something more with these arguments. 199 /* 200 const psMetadata *camera = psMetadataAlloc(); 201 psDB *db = NULL; 202 pmFPA* fpa = pmFPAAlloc(camera, db); 203 if (fpa == NULL) { 204 psLogMsg(__func__,PS_LOG_ERROR, "pmFPAAlloc returned a NULL.n"); 205 return 1; 206 } 207 208 pmChip *chip = pmChipAlloc(fpa); 209 if (chip == NULL) { 210 psLogMsg(__func__,PS_LOG_ERROR, "pmChipAlloc returned a NULL.n"); 211 return 2; 212 } 213 */ 214 pmFPA* fpa = NULL; 215 pmChip *chip = NULL; 196 const psMetadata *camera = psMetadataAlloc(); 197 psDB *db = NULL; 198 pmFPA* fpa = pmFPAAlloc(camera, db); 199 if (fpa == NULL) { 200 psLogMsg(__func__,PS_LOG_ERROR, "pmFPAAlloc returned a NULL.n"); 201 return 1; 202 } 203 204 pmChip *chip = pmChipAlloc(fpa); 205 if (chip == NULL) { 206 psLogMsg(__func__,PS_LOG_ERROR, "pmChipAlloc returned a NULL.n"); 207 return 2; 208 } 209 216 210 pmCell *cell = pmCellAlloc(chip); 217 211 if (cell == NULL) { … … 288 282 psFree(chip); 289 283 psFree(cell); 284 psFree(camera); 290 285 291 286 return 0; … … 295 290 { 296 291 // XXX: Do something more with these arguments. 297 /* 298 const psMetadata *camera = psMetadataAlloc(); 299 psDB *db = NULL; 300 pmFPA* fpa = pmFPAAlloc(camera, db); 301 302 if (fpa == NULL) { 303 psLogMsg(__func__,PS_LOG_ERROR, "pmFPAAlloc returned a NULL.\n"); 304 return 1; 305 } 306 307 pmChip *chip = pmChipAlloc(fpa); 308 if (chip == NULL) { 309 psLogMsg(__func__,PS_LOG_ERROR, "pmChipAlloc returned a NULL.\n"); 310 return 2; 311 } 312 313 pmCell *cell = pmCellAlloc(chip); 314 if (cell == NULL) { 315 psLogMsg(__func__,PS_LOG_ERROR, "pmCellAlloc returned a NULL.\n"); 316 return 3; 317 } 318 */ 319 320 pmFPA* fpa = NULL; 321 pmChip *chip = NULL; 322 pmCell *cell = NULL; 292 const psMetadata *camera = psMetadataAlloc(); 293 psDB *db = NULL; 294 pmFPA* fpa = pmFPAAlloc(camera, db); 295 296 if (fpa == NULL) { 297 psLogMsg(__func__,PS_LOG_ERROR, "pmFPAAlloc returned a NULL.\n"); 298 return 1; 299 } 300 301 pmChip *chip = pmChipAlloc(fpa); 302 if (chip == NULL) { 303 psLogMsg(__func__,PS_LOG_ERROR, "pmChipAlloc returned a NULL.\n"); 304 return 2; 305 } 306 307 pmCell *cell = pmCellAlloc(chip); 308 if (cell == NULL) { 309 psLogMsg(__func__,PS_LOG_ERROR, "pmCellAlloc returned a NULL.\n"); 310 return 3; 311 } 312 323 313 pmReadout *readout = pmReadoutAlloc(cell); 324 314 if (readout == NULL) { … … 376 366 psFree(cell); 377 367 psFree(readout); 368 psFree(camera); 378 369 379 370 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.
