205 |
|
goto err; |
206 |
|
br->hdr->infoSiz = bmPos - (hdrSiz + palSiz); |
207 |
|
if (br->hdr->nColors > 0 || br->hdr->infoSiz > 0) { |
208 |
< |
br->hdr = (BMPHeader *)realloc((void *)br->hdr, |
208 |
> |
br->hdr = (BMPHeader *)realloc(br->hdr, |
209 |
|
sizeof(BMPHeader) + |
210 |
|
palSiz + br->hdr->infoSiz); |
211 |
|
if (br->hdr == NULL) |
228 |
|
br->yscan = -1; |
229 |
|
if (seek != NULL && ((br->hdr->compr == BI_RLE8) | |
230 |
|
(br->hdr->compr == BI_RLE4))) { |
231 |
< |
BMPReader *newbr = (BMPReader *)realloc((void *)br, |
231 |
> |
BMPReader *newbr = (BMPReader *)realloc(br, |
232 |
|
sizeof(BMPReader) + |
233 |
|
sizeof(br->scanpos[0]) * |
234 |
|
br->hdr->height); |
235 |
|
if (newbr == NULL) |
236 |
|
goto err; |
237 |
|
br = newbr; |
238 |
< |
memset((void *)(br->scanpos + 1), 0, |
238 |
> |
memset(br->scanpos+1, 0, |
239 |
|
sizeof(br->scanpos[0])*br->hdr->height); |
240 |
|
} |
241 |
|
br->scanpos[0] = br->fpos; |
243 |
|
return br; |
244 |
|
err: |
245 |
|
if (br->hdr != NULL) |
246 |
< |
free((void *)br->hdr); |
246 |
> |
free(br->hdr); |
247 |
|
if (br->scanline != NULL) |
248 |
< |
free((void *)br->scanline); |
249 |
< |
free((void *)br); |
248 |
> |
free(br->scanline); |
249 |
> |
free(br); |
250 |
|
return NULL; |
251 |
|
} |
252 |
|
|
479 |
|
{ |
480 |
|
if (br == NULL) |
481 |
|
return; |
482 |
< |
free((void *)br->hdr); |
483 |
< |
free((void *)br->scanline); |
484 |
< |
free((void *)br); |
482 |
> |
free(br->hdr); |
483 |
> |
free(br->scanline); |
484 |
> |
free(br); |
485 |
|
} |
486 |
|
|
487 |
|
/* stdio getc() callback */ |
529 |
|
hdr->compr = BI_UNCOMPR; |
530 |
|
hdr->hRes = hdr->vRes = 2835; /* default to 72 ppi */ |
531 |
|
hdr->nColors = hdr->impColors = 0; |
532 |
< |
hdr->infoSiz = infolen; |
532 |
> |
if ((hdr->infoSiz = infolen) > 0) |
533 |
> |
memset(BMPinfo(hdr), 0, hdr->infoSiz); |
534 |
|
return hdr; |
535 |
|
} |
536 |
|
|
566 |
|
hdr->nColors = ncolors; |
567 |
|
hdr->impColors = 0; /* says all colors important */ |
568 |
|
hdr->infoSiz = infolen; |
569 |
< |
memset((void *)hdr->palette, 0, sizeof(RGBquad)*((size_t)1<<n) + infolen); |
569 |
> |
memset(hdr->palette, 0, sizeof(RGBquad)*((size_t)1<<n) + infolen); |
570 |
|
for (n = ncolors; n--; ) |
571 |
|
hdr->palette[n].r = hdr->palette[n].g = |
572 |
|
hdr->palette[n].b = n*255/(ncolors-1); |
656 |
|
bw->yscan = 0; |
657 |
|
bw->scanline = (uint8 *)calloc(scanSiz, sizeof(uint8)); |
658 |
|
if (bw->scanline == NULL) { |
659 |
< |
free((void *)bw); |
659 |
> |
free(bw); |
660 |
|
return NULL; |
661 |
|
} |
662 |
|
bw->fbmp = hdrSiz + palSiz + hdr->infoSiz; |
786 |
|
{ |
787 |
|
if (bw == NULL) |
788 |
|
return; |
789 |
< |
free((void *)bw->hdr); |
790 |
< |
free((void *)bw->scanline); |
791 |
< |
free((void *)bw); |
789 |
> |
free(bw->hdr); |
790 |
> |
free(bw->scanline); |
791 |
> |
free(bw); |
792 |
|
} |