comparison tools/lib64gfx.c @ 1462:9cb6dd1046bf

Fix memory leaks by freeing more things in dmC64ImageFree().
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 10 May 2018 21:22:31 +0300
parents 96c254579b82
children bde6a66bc2f6
comparison
equal deleted inserted replaced
1461:96c254579b82 1462:9cb6dd1046bf
117 117
118 void dmC64ImageFree(DMC64Image *img) 118 void dmC64ImageFree(DMC64Image *img)
119 { 119 {
120 if (img != NULL) 120 if (img != NULL)
121 { 121 {
122 // Free the allocated areas
122 for (int i = 0; i < img->nbanks; i++) 123 for (int i = 0; i < img->nbanks; i++)
123 { 124 {
124 dmFree(img->color[i]); 125 dmFree(img->color[i]);
125 dmFree(img->bitmap[i]); 126 dmFree(img->bitmap[i]);
126 dmFree(img->screen[i]); 127 dmFree(img->screen[i]);
127 dmFree(img->charmem[i]); 128 dmFree(img->charmem[i]);
128 } 129 }
129 130
131 // Free the pointers to the areas
132 dmFree(img->color);
133 dmFree(img->bitmap);
134 dmFree(img->screen);
135 dmFree(img->charmem);
136
137 // Extra data ..
130 for (int i = 0; i < C64_MAX_EXTRA_DATA; i++) 138 for (int i = 0; i < C64_MAX_EXTRA_DATA; i++)
131 dmFree(img->extraData[i]); 139 dmFree(img->extraData[i]);
132 140
133 dmMemset(img, 0, sizeof(DMC64Image)); 141 dmMemset(img, 0, sizeof(DMC64Image));
134 dmFree(img); 142 dmFree(img);