--- CV/CV.xs 2005/02/08 11:00:11 1.12 +++ CV/CV.xs 2005/02/08 12:51:12 1.14 @@ -262,14 +262,18 @@ char *hist; SV *histsv = newSV (257); - sv_upgrade (histsv, SVt_PV); + SvPOK_on (histsv); SvCUR_set (histsv, 256); hist = SvPVX (histsv); Zero (tmphist, 256, int); + j = len; + while (len--) - ++tmphist[(unsigned char)*buf++]; + ++tmphist[(unsigned char)*buf++ & 0xda]; + + len = j; bigst = 1; for (j = 0; j < 256; ++j) @@ -277,7 +281,7 @@ bigst = tmphist[j]; for (j = 0; j < 256; ++j) - hist[j] = tmphist[j] * 255 / bigst; + hist[j] = tmphist[j] * 255 / (len == 0 ? 1 : len);//bigst; av_push (result, histsv); }