summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Podtelezhnikov <apodtele@gmail.com>2018-11-02 20:42:25 -0400
committerAlexei Podtelezhnikov <apodtele@gmail.com>2018-11-02 20:42:25 -0400
commit61d50756b6ddc6cce459f64445abf19f09d18253 (patch)
tree5bc776d2a615ac508ba4bef96101370d20b22515
parent339c451ad0e8a743b59fb2bd0589fe9362b45024 (diff)
downloadfreetype2-61d50756b6ddc6cce459f64445abf19f09d18253.tar.gz
* src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
Reported and tested by Behdad.
-rw-r--r--ChangeLog6
-rw-r--r--src/truetype/ttgxvar.c10
2 files changed, 10 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 9ac839574..b98801a2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-11-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
+
+ Reported and tested by Behdad.
+
2018-11-02 Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
[autofit] Prevent SEGV.
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c
index 6a45e4278..407dcae83 100644
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -68,8 +68,6 @@
/* some macros we need */
-#define FT_FIXED_ONE ( (FT_Fixed)0x10000 )
-
#define FT_fdot14ToFixed( x ) \
( (FT_Fixed)( (FT_ULong)(x) << 2 ) )
#define FT_intToFixed( i ) \
@@ -884,7 +882,7 @@
/* outer loop steps through master designs to be blended */
for ( master = 0; master < varData->regionIdxCount; master++ )
{
- FT_Fixed scalar = FT_FIXED_ONE;
+ FT_Fixed scalar = 0x10000L;
FT_UInt regionIndex = varData->regionIndices[master];
GX_AxisCoords axis = itemStore->varRegionList[regionIndex].axisList;
@@ -908,6 +906,9 @@
else if ( axis->peakCoord == 0 )
continue;
+ else if ( face->blend->normalizedcoords[j] == axis->peakCoord )
+ continue;
+
/* ignore this region if coords are out of range */
else if ( face->blend->normalizedcoords[j] <= axis->startCoord ||
face->blend->normalizedcoords[j] >= axis->endCoord )
@@ -916,9 +917,6 @@
break;
}
- else if ( face->blend->normalizedcoords[j] == axis->peakCoord )
- continue;
-
/* cumulative product of all the axis scalars */
else if ( face->blend->normalizedcoords[j] < axis->peakCoord )
scalar =