Mercurial > hg > dmlib
comparison tools/gfxconv.c @ 2052:aa8df4f1b785
Fix minor memory leaks in gfxconv.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 03 Dec 2018 19:24:32 +0200 |
parents | 2b961e6b35e5 |
children | 020f2151949a |
comparison
equal
deleted
inserted
replaced
2051:c67d863384a5 | 2052:aa8df4f1b785 |
---|---|
1808 FILE *inFile = NULL; | 1808 FILE *inFile = NULL; |
1809 DMC64ImageConvSpec imageSpecC64; | 1809 DMC64ImageConvSpec imageSpecC64; |
1810 const DMC64ImageFormat *inC64Fmt = NULL; | 1810 const DMC64ImageFormat *inC64Fmt = NULL; |
1811 DMConvFormat inFormat, outFormat; | 1811 DMConvFormat inFormat, outFormat; |
1812 DMC64Image *inC64Image = NULL, *outC64Image = NULL; | 1812 DMC64Image *inC64Image = NULL, *outC64Image = NULL; |
1813 DMImage *inImage = NULL, *outImage = NULL; | |
1813 Uint8 *dataBuf = NULL, *dataBufOrig = NULL; | 1814 Uint8 *dataBuf = NULL, *dataBufOrig = NULL; |
1814 size_t dataSize, dataSizeOrig, dataRealOffs; | 1815 size_t dataSize, dataSizeOrig, dataRealOffs; |
1815 int i, n; | 1816 int i, n; |
1816 | 1817 |
1817 // Default color mapping | 1818 // Default color mapping |
2011 dmDumpSpritesAndChars(dataBuf, dataSize, dataRealOffs); | 2012 dmDumpSpritesAndChars(dataBuf, dataSize, dataRealOffs); |
2012 break; | 2013 break; |
2013 | 2014 |
2014 case FFMT_BITMAP: | 2015 case FFMT_BITMAP: |
2015 { | 2016 { |
2016 DMImage *outImage = NULL; | |
2017 int res = DMERR_OK; | 2017 int res = DMERR_OK; |
2018 | 2018 |
2019 if (optOutFilename == NULL) | 2019 if (optOutFilename == NULL) |
2020 { | 2020 { |
2021 dmErrorMsg("Output filename not set, required for bitmap formats.\n"); | 2021 dmErrorMsg("Output filename not set, required for bitmap formats.\n"); |
2068 default: | 2068 default: |
2069 dmErrorMsg("Unsupported output format for bitmap conversion.\n"); | 2069 dmErrorMsg("Unsupported output format for bitmap conversion.\n"); |
2070 break; | 2070 break; |
2071 } | 2071 } |
2072 | 2072 |
2073 dmImageFree(outImage); | |
2074 } | 2073 } |
2075 break; | 2074 break; |
2076 | 2075 |
2077 case FFMT_IMAGE: | 2076 case FFMT_IMAGE: |
2078 { | 2077 { |
2079 const DMImageFormat *ifmt = &dmImageFormatList[optInFormat]; | 2078 const DMImageFormat *ifmt = &dmImageFormatList[optInFormat]; |
2080 DMImage *inImage = NULL; | |
2081 int res = DMERR_OK; | 2079 int res = DMERR_OK; |
2082 DMResource *fp; | 2080 DMResource *fp; |
2083 | 2081 |
2084 if (optOutFilename == NULL) | 2082 if (optOutFilename == NULL) |
2085 { | 2083 { |
2153 if (res != DMERR_OK) | 2151 if (res != DMERR_OK) |
2154 { | 2152 { |
2155 dmErrorMsg("Error writing output (%s), probably unsupported output format for bitmap/image conversion.\n", | 2153 dmErrorMsg("Error writing output (%s), probably unsupported output format for bitmap/image conversion.\n", |
2156 dmErrorStr(res)); | 2154 dmErrorStr(res)); |
2157 } | 2155 } |
2158 | |
2159 dmImageFree(inImage); | |
2160 } | 2156 } |
2161 break; | 2157 break; |
2162 } | 2158 } |
2163 | 2159 |
2164 error: | 2160 error: |
2165 dmFree(convFormatList); | 2161 dmFree(convFormatList); |
2166 dmFree(dataBufOrig); | 2162 dmFree(dataBufOrig); |
2167 dmC64ImageFree(inC64Image); | 2163 dmC64ImageFree(inC64Image); |
2168 dmC64ImageFree(outC64Image); | 2164 dmC64ImageFree(outC64Image); |
2165 dmImageFree(inImage); | |
2166 dmImageFree(outImage); | |
2169 | 2167 |
2170 return 0; | 2168 return 0; |
2171 } | 2169 } |