| 39 | 
  | 
 | 
| 40 | 
  | 
 | 
| 41 | 
  | 
int | 
| 42 | 
< | 
tmCvColrs(ls, cs, scan, len)            /* tone map RGBE/XYZE colors */ | 
| 42 | 
> | 
tmCvColrs(ls, cs, scan, len)            /* convert RGBE/XYZE colors */ | 
| 43 | 
  | 
TMbright        *ls; | 
| 44 | 
  | 
BYTE    *cs; | 
| 45 | 
  | 
COLR    *scan; | 
| 63 | 
  | 
                        colr_color(newscan[i], scan[i]); | 
| 64 | 
  | 
                return(tmCvColors(ls, cs, newscan, len)); | 
| 65 | 
  | 
        } | 
| 66 | 
< | 
        if (colrReg == -1) {                    /* build tables if necessary */ | 
| 66 | 
> | 
        if (colrReg < 0) {                      /* build tables if necessary */ | 
| 67 | 
  | 
                colrReg = tmRegPkg(&colrPkg); | 
| 68 | 
  | 
                if (colrReg < 0) | 
| 69 | 
  | 
                        returnErr(TM_E_CODERR1); | 
| 183 | 
  | 
        *xp = *yp = 0;                          /* error precaution */ | 
| 184 | 
  | 
        if ((inpf = fp) == TM_GETFILE && (inpf = fopen(fname, "r")) == NULL) | 
| 185 | 
  | 
                returnErr(TM_E_BADFILE); | 
| 186 | 
+ | 
        *lpp = NULL; | 
| 187 | 
+ | 
        if (cpp != TM_NOCHROMP) *cpp = NULL; | 
| 188 | 
  | 
        info = rhdefault;                       /* get our header */ | 
| 189 | 
< | 
        getheader(inpf, headline, (char *)&info); | 
| 189 | 
> | 
        getheader(inpf, headline, (MEM_PTR)&info); | 
| 190 | 
  | 
        if (info.format == FMTBAD | info.expos <= 0. || | 
| 191 | 
  | 
                        fgetresolu(xp, yp, inpf) < 0) { | 
| 192 | 
  | 
                err = TM_E_BADFILE; goto done; | 
| 227 | 
  | 
        if (fp == NULL) | 
| 228 | 
  | 
                fclose(inpf); | 
| 229 | 
  | 
        if (scanin != NULL) | 
| 230 | 
< | 
                free((char *)scanin); | 
| 231 | 
< | 
        if (err != TM_E_OK) | 
| 230 | 
> | 
                free((MEM_PTR)scanin); | 
| 231 | 
> | 
        if (err != TM_E_OK) { | 
| 232 | 
> | 
                if (*lpp != NULL) | 
| 233 | 
> | 
                        free((MEM_PTR)*lpp); | 
| 234 | 
> | 
                if (cpp != TM_NOCHROMP && *cpp != NULL) | 
| 235 | 
> | 
                        free((MEM_PTR)*cpp); | 
| 236 | 
  | 
                returnErr(err); | 
| 237 | 
+ | 
        } | 
| 238 | 
  | 
        returnOK; | 
| 239 | 
  | 
} | 
| 240 | 
  | 
 | 
| 302 | 
  | 
        for (y = 0; y < *yp; y++) { | 
| 303 | 
  | 
                if (freadcolrs(scan, *xp, infp) < 0) { | 
| 304 | 
  | 
                        pclose(infp); | 
| 305 | 
< | 
                        free((char *)scan); | 
| 306 | 
< | 
                        free((char *)*psp); | 
| 305 | 
> | 
                        free((MEM_PTR)scan); | 
| 306 | 
> | 
                        free((MEM_PTR)*psp); | 
| 307 | 
  | 
                        *psp = NULL; | 
| 308 | 
  | 
                        returnErr(TM_E_BADFILE); | 
| 309 | 
  | 
                } | 
| 318 | 
  | 
                                *rp++ = scan[x][BLU]; | 
| 319 | 
  | 
                        } | 
| 320 | 
  | 
        } | 
| 321 | 
< | 
        free((char *)scan); | 
| 321 | 
> | 
        free((MEM_PTR)scan); | 
| 322 | 
  | 
        pclose(infp); | 
| 323 | 
  | 
        returnOK; | 
| 324 | 
  | 
} | 
| 335 | 
  | 
FILE    *fp; | 
| 336 | 
  | 
{ | 
| 337 | 
  | 
        char    *funcName = fname==NULL ? "tmMapPicture" : fname; | 
| 331 | 
– | 
        FILE    *inpf; | 
| 338 | 
  | 
        BYTE    *cp; | 
| 339 | 
  | 
        TMbright        *lp; | 
| 340 | 
  | 
        int     err; | 
| 365 | 
  | 
        if (flags & TM_F_BW) { | 
| 366 | 
  | 
                *psp = (BYTE *)malloc(sizeof(BYTE) * *xp * *yp); | 
| 367 | 
  | 
                if (*psp == NULL) { | 
| 368 | 
< | 
                        free((char *)lp); | 
| 368 | 
> | 
                        free((MEM_PTR)lp); | 
| 369 | 
  | 
                        tmDone(NULL); | 
| 370 | 
  | 
                        returnErr(TM_E_NOMEM); | 
| 371 | 
  | 
                } | 
| 383 | 
  | 
        err = tmMapPixels(*psp, lp, cp, *xp * *yp); | 
| 384 | 
  | 
 | 
| 385 | 
  | 
done:                                           /* clean up */ | 
| 386 | 
< | 
        free((char *)lp); | 
| 386 | 
> | 
        free((MEM_PTR)lp); | 
| 387 | 
  | 
        tmDone(NULL); | 
| 388 | 
  | 
        if (err != TM_E_OK) {                   /* free memory on error */ | 
| 389 | 
< | 
                free((char *)*psp); | 
| 389 | 
> | 
                free((MEM_PTR)*psp); | 
| 390 | 
  | 
                *psp = NULL; | 
| 391 | 
  | 
                returnErr(err); | 
| 392 | 
  | 
        } |