--- ray/src/util/cmatrix.c 2016/08/18 00:52:48 2.17 +++ ray/src/util/cmatrix.c 2018/08/02 18:33:49 2.20 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: cmatrix.c,v 2.17 2016/08/18 00:52:48 greg Exp $"; +static const char RCSid[] = "$Id: cmatrix.c,v 2.20 2018/08/02 18:33:49 greg Exp $"; #endif /* * Color matrix routines. @@ -21,7 +21,7 @@ const char *cm_fmt_id[] = { }; const int cm_elem_size[] = { - 0, 0, 3*sizeof(float), 3*sizeof(double), 4, 4 + 0, 0, 4, 4, 3*sizeof(float), 3*sizeof(double) }; /* Allocate a color coefficient matrix */ @@ -87,7 +87,7 @@ static int get_cminfo(char *s, void *p) { CMINFO *ip = (CMINFO *)p; - char fmt[32]; + char fmt[MAXFMTLEN]; int i; if (!strncmp(s, "NCOMP=", 6) && atoi(s+6) != 3) { @@ -403,9 +403,9 @@ cm_multiply(const CMATRIX *cm1, const CMATRIX *cm2) for (i = 0; i < cm1->ncols; i++) { const COLORV *cp1 = cm_lval(cm1,dr,i); const COLORV *cp2 = cm_lval(cm2,i,dc); - res[0] += cp1[0] * cp2[0]; - res[1] += cp1[1] * cp2[1]; - res[2] += cp1[2] * cp2[2]; + res[0] += (double)cp1[0] * cp2[0]; + res[1] += (double)cp1[1] * cp2[1]; + res[2] += (double)cp1[2] * cp2[2]; } copycolor(dp, res); }