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 }