Imported Upstream version 2.6.7
[platform/upstream/harfbuzz.git] / src / hb-ot-var-avar-table.hh
index ef8ba3f..29219ad 100644 (file)
@@ -51,7 +51,7 @@ struct AxisValueMap
   public:
   F2DOT14      coords[2];
 //   F2DOT14   fromCoord;      /* A normalized coordinate value obtained using
-//                              * default normalization. */
+//                              * default normalization. */
 //   F2DOT14   toCoord;        /* The modified, normalized coordinate value. */
 
   public:
@@ -79,7 +79,7 @@ struct SegmentMaps : ArrayOf<AxisValueMap>
       return value - arrayZ[0].fromCoord + arrayZ[0].toCoord;
 
     unsigned int i;
-    unsigned int count = len;
+    unsigned int count = len - 1;
     for (i = 1; i < count && value > arrayZ[i].fromCoord; i++)
       ;
 
@@ -90,9 +90,8 @@ struct SegmentMaps : ArrayOf<AxisValueMap>
       return arrayZ[i-1].toCoord;
 
     int denom = arrayZ[i].fromCoord - arrayZ[i-1].fromCoord;
-    return arrayZ[i-1].toCoord +
-          ((arrayZ[i].toCoord - arrayZ[i-1].toCoord) *
-           (value - arrayZ[i-1].fromCoord) + denom/2) / denom;
+    return roundf (arrayZ[i-1].toCoord + ((float) (arrayZ[i].toCoord - arrayZ[i-1].toCoord) *
+                                         (value - arrayZ[i-1].fromCoord)) / denom);
 #undef toCoord
 #undef fromCoord
   }