Mercurial > hg > dmlib
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); |