Changeset 21438
- Timestamp:
- Feb 10, 2009, 11:33:02 AM (17 years ago)
- Location:
- trunk/magic/remove/src
- Files:
-
- 3 edited
-
streaksio.c (modified) (10 diffs)
-
streaksio.h (modified) (2 diffs)
-
warpedpixels.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/magic/remove/src/streaksio.c
r21156 r21438 2 2 #include "libgen.h" 3 3 #include "unistd.h" 4 5 static void sFileFree(sFile *sfile); 6 static void streakFilesFree(streakFiles *sf); 7 static void freeImages(streakFiles *); 4 8 5 9 static nebServer *ourNebServer = NULL; … … 12 16 bool status; 13 17 streakFiles *sf = psAlloc(sizeof(streakFiles)); 18 psMemSetDeallocator(sf, (psFreeFunc) streakFilesFree); 14 19 memset(sf, 0, sizeof(*sf)); 15 20 … … 96 101 } 97 102 98 void sFileFree(sFile *sfile) 99 { 100 psFree(sfile->resolved_name); 101 psFree(sfile->name); 102 psFree(sfile); 103 static void 104 streakFilesFree(streakFiles *sf) 105 { 106 freeImages(sf); 107 psFree(sf->warpedPixels); 108 psFree(sf->tiles); 109 psFree(sf->view); 110 psFree(sf->astrom); 103 111 } 104 112 … … 232 240 psString name = psMetadataLookupStr(&status, config->arguments, fileSelect); 233 241 if (!status || !name) { 242 sFileFree(sfile); 234 243 if (required) { 235 244 psError(PS_ERR_IO, false, "Failed to lookup name for %s", fileSelect); 236 sFileFree(sfile);237 245 streaksExit("", 1); 238 246 } … … 707 715 708 716 void 717 sFileFree(sFile *sfile) 718 { 719 if (!sfile) { 720 return; 721 } 722 psFree(sfile->name); 723 psFree(sfile->resolved_name); 724 psFree(sfile); 725 } 726 727 void 709 728 closeImage(sFile *sfile) 710 729 { … … 718 737 } 719 738 psFree(sfile->header); 739 sfile->header = NULL; 720 740 psFree(sfile->image); 741 sfile->header = NULL; 721 742 psFree(sfile->imagecube); 722 psFree(sfile->name); 723 psFree(sfile->resolved_name); 724 psFree(sfile); 743 sfile->header = NULL; 725 744 } 726 745 … … 745 764 closeImage(sf->outWeight); 746 765 closeImage(sf->recWeight); 766 } 767 } 768 769 static void 770 freeImages(streakFiles *sf) 771 { 772 sFileFree(sf->inImage); 773 sFileFree(sf->outImage); 774 sFileFree(sf->recImage); 775 if (sf->inMask) { 776 sFileFree(sf->inMask); 777 sFileFree(sf->outMask); 778 sFileFree(sf->recMask); 779 } 780 if (sf->inChMask) { 781 sFileFree(sf->inChMask); 782 sFileFree(sf->outChMask); 783 sFileFree(sf->recChMask); 784 } 785 if (sf->inWeight) { 786 sFileFree(sf->inWeight); 787 sFileFree(sf->outWeight); 788 sFileFree(sf->recWeight); 747 789 } 748 790 } … … 845 887 return true; 846 888 } 847 static bool 889 890 bool 848 891 swapOutputsToInputs(streakFiles *sfiles) 849 892 { 850 if (sfiles-> inMask) {893 if (sfiles->outMask) { 851 894 if (!swapOutputToInput(sfiles->inMask, sfiles->outMask)) { 852 895 psError(PM_ERR_SYS, false, "failed to swap instances for Mask."); … … 855 898 } 856 899 857 if (sfiles-> inWeight) {900 if (sfiles->outWeight) { 858 901 if (!swapOutputToInput(sfiles->inWeight, sfiles->outWeight)) { 859 902 psError(PM_ERR_SYS, false, "failed to swap instances for Weight."); … … 891 934 } 892 935 893 staticbool936 bool 894 937 deleteTemps(streakFiles *sfiles) 895 938 { -
trunk/magic/remove/src/streaksio.h
r21156 r21438 7 7 psString outputFilename, bool required); 8 8 9 void sFileFree(sFile *);9 void closeImages(streakFiles *sfiles); 10 10 11 void closeImages(streakFiles *sfiles);12 11 void closeImage(sFile *sfile); 13 12 … … 27 26 bool isExciseValue(double, double); 28 27 void setMaskedToNAN(streakFiles *sfiles, psU8 maskMask, bool printCounts); 28 29 bool swapOutputsToInputs(streakFiles *sf); 29 30 #endif // STREAKS_IO_H -
trunk/magic/remove/src/warpedpixels.c
r21156 r21438 22 22 int n = psArrayLength(skycells); 23 23 24 psRegion bounds = *pmChipPixels(sf->chip);24 psRegion *bounds = pmChipPixels(sf->chip); 25 25 26 int width = bounds.x1 - bounds.x0; 27 int height = bounds.y1 - bounds.y0; 26 int width = bounds->x1 - bounds->x0; 27 int height = bounds->y1 - bounds->y0; 28 29 psFree(bounds); 28 30 29 31 sf->warpedPixels = psImageAlloc(width, height, PS_TYPE_U8); … … 35 37 36 38 addTouchedPixels(sf, resolved_name); 39 psFree(resolved_name); 37 40 } 38 41 … … 48 51 psFitsWriteImage(fits, header, sf->warpedPixels, 0, NULL); 49 52 psFitsClose(fits); 53 psFree(header); 50 54 } 51 55 return true; … … 62 66 } 63 67 psMetadata *header = psFitsReadHeader(NULL, fits); 68 psFitsClose(fits); 64 69 if (!header) { 65 70 psError(PS_ERR_IO, false, "failed to read fixts header from skycell file: %s", fileName); … … 75 80 int naxis2 = psMetadataLookupS32(NULL, header, "NAXIS2"); 76 81 82 psFree(header); 83 77 84 /* now set up our wrapper to the chip astrometry to apply to the whole chip */ 78 85 sf->astrom = streakSetAstrometry(sf->astrom, sf->stage, sf->inAstrom->fpa, sf->chip, false, NULL, … … 111 118 pt[i].y = p.y; 112 119 } 120 121 psFree(wcs); 113 122 114 123 // put the corners in the desired order (see comments below)
Note:
See TracChangeset
for help on using the changeset viewer.
