[gs-cvs] rev 7704 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Thu Feb 15 23:44:07 PST 2007


Author: leonardo
Date: 2007-02-15 23:44:07 -0800 (Thu, 15 Feb 2007)
New Revision: 7704

Modified:
   trunk/gs/src/gxhintn.c
Log:
Fix (type 1 hinter) : An inaccurate estimation of matrix precision.

DETAILS :

The old code doesn't account the Y scale due to a misprint.
It is risky of a fixed overflow while transforming a glyph
to the device space. We didn't detect such glitches in practice.

EXPECTED DIFFERENCES :

Minor difference in character raster :

Normal 72dpi : None.

Normal 30dpi :
"020-01.ps" 
"027-09.ps" 
"045-01.ps" 
"289-01.ps" 
"Bug687724.pdf" 
"Bug687828.pdf" 
"RealCities.pdf" 
"tpc2.ps" 

pdfwrite 72dpi :
RealCities.pdf
Bug687724.pdf

pdfwrite 300dpi :
"020-01.ps" 
"027-09.ps" 
"045-01.ps" 
"Altona.Page_3.2002-09-27.pdf" 
"Altona_Technical_1v1_x3.pdf" 
"Bug687724.pdf" 
"RealCities.pdf" 

CET 300dpi :
13-01-4.ppm
13-02-7.ppm
13-03-5.ppm
13-12-7.ppm
13-22-3.ppm
13-26-6.ppm
13-27-5.ppm
13-28-6.ppm
13-29-8.ppm
14-08-12.ppm


Modified: trunk/gs/src/gxhintn.c
===================================================================
--- trunk/gs/src/gxhintn.c	2007-02-15 10:58:50 UTC (rev 7703)
+++ trunk/gs/src/gxhintn.c	2007-02-16 07:44:07 UTC (rev 7704)
@@ -230,7 +230,7 @@
 
 private void fraction_matrix__set(fraction_matrix * this, const double_matrix * pmat)
 {   double axx = fabs(pmat->xx), axy = fabs(pmat->xy);
-    double ayx = fabs(pmat->xx), ayy = fabs(pmat->xy);
+    double ayx = fabs(pmat->yx), ayy = fabs(pmat->yy);
     double scale = max(axx + axy, ayx + ayy);
     int matrix_exp, m;
     double unused = frexp(scale, &matrix_exp);



More information about the gs-cvs mailing list