| 262 |
|
returnErr(TM_E_BADFILE); |
| 263 |
|
} |
| 264 |
|
/* allocate arrays */ |
| 265 |
+ |
scan = (COLR *)malloc(sizeof(COLR) * *xp); |
| 266 |
|
if (flags & TM_F_BW) |
| 267 |
|
rp = (BYTE *)malloc(sizeof(BYTE) * *xp * *yp); |
| 268 |
|
else |
| 269 |
|
rp = (BYTE *)malloc(3*sizeof(BYTE) * *xp * *yp); |
| 269 |
– |
scan = (COLR *)malloc(sizeof(COLR) * *xp); |
| 270 |
|
if ((*psp = rp) == NULL | scan == NULL) { |
| 271 |
|
pclose(infp); |
| 272 |
|
returnErr(TM_E_NOMEM); |
| 275 |
|
for (y = 0; y < *yp; y++) { |
| 276 |
|
if (freadcolrs(scan, *xp, infp) < 0) { |
| 277 |
|
pclose(infp); |
| 278 |
+ |
free((char *)scan); |
| 279 |
+ |
free((char *)*psp); |
| 280 |
+ |
*psp = NULL; |
| 281 |
|
returnErr(TM_E_BADFILE); |
| 282 |
|
} |
| 283 |
|
colrs_gambs(scan, *xp); |
| 338 |
|
/* allocate space for result */ |
| 339 |
|
if (flags & TM_F_BW) { |
| 340 |
|
*psp = (BYTE *)malloc(sizeof(BYTE) * *xp * *yp); |
| 341 |
< |
if (*psp == NULL) |
| 341 |
> |
if (*psp == NULL) { |
| 342 |
> |
free((char *)lp); |
| 343 |
> |
tmDone(NULL); |
| 344 |
|
returnErr(TM_E_NOMEM); |
| 345 |
+ |
} |
| 346 |
|
cp = TM_NOCHROM; |
| 347 |
|
} else |
| 348 |
|
*psp = cp; |