[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master 9aa99f226 1/2: [truetype] Handle 0xFFFF special value
From: |
Werner Lemberg |
Subject: |
[freetype2] master 9aa99f226 1/2: [truetype] Handle 0xFFFF special value inside delta retrieval function |
Date: |
Tue, 24 May 2022 17:50:55 -0400 (EDT) |
branch: master
commit 9aa99f226279f6fae80565d346ba9f81d396bd02
Author: Dominik Röttsches <drott@chromium.org>
Commit: Dominik Röttsches <drott@chromium.org>
[truetype] Handle 0xFFFF special value inside delta retrieval function
* truetype/ttgxvar.c (tt_hvadvance_adjust, tt_apply_mvar,
tt_var_get_item_delta): Remove special 0xFFFF handling in favor of less
redundant handling inside the tt_var_get_item_delta function, as it is
equivalent to returning a 0 delta. Avoids code-duplication checking for
special value 0xFFFF.
---
src/truetype/ttgxvar.c | 31 ++++++++++---------------------
1 file changed, 10 insertions(+), 21 deletions(-)
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c
index 390e47c83..d6a34e3c5 100644
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -972,6 +972,10 @@
FT_Fixed scaledDelta;
FT_Fixed delta;
+ /* OpenType 1.8.4+: No variation data for this item
+ * as indices have special value 0xFFFF. */
+ if (outerIndex == 0xFFFF && innerIndex == 0xFFFF)
+ return 0;
/* See pseudo code from `Font Variations Overview' */
/* in the OpenType specification. */
@@ -1148,20 +1152,12 @@
}
}
- /* new test introduced in OpenType 1.8.4 */
- if ( outerIndex == 0xFFFFU && innerIndex == 0xFFFFU )
- {
- FT_TRACE5(( "no adjustment to %s value %d\n",
- vertical ? "vertical height" : "horizontal width",
- *avalue ));
- }
- else
- {
- delta = tt_var_get_item_delta( face,
- &table->itemStore,
- outerIndex,
- innerIndex );
+ delta = tt_var_get_item_delta( face,
+ &table->itemStore,
+ outerIndex,
+ innerIndex );
+ if ( delta ) {
FT_TRACE5(( "%s value %d adjusted by %d unit%s (%s)\n",
vertical ? "vertical height" : "horizontal width",
*avalue,
@@ -1459,19 +1455,12 @@
FT_Int delta;
- /* new test introduced in OpenType 1.8.4 */
- if ( value->outerIndex == 0xFFFFU && value->innerIndex == 0xFFFFU )
- {
- /* no variation data for this item */
- continue;
- }
-
delta = tt_var_get_item_delta( face,
&blend->mvar_table->itemStore,
value->outerIndex,
value->innerIndex );
- if ( p )
+ if ( p && delta )
{
FT_TRACE5(( "value %c%c%c%c (%d unit%s) adjusted by %d unit%s
(MVAR)\n",
(FT_Char)( value->tag >> 24 ),
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master 9aa99f226 1/2: [truetype] Handle 0xFFFF special value inside delta retrieval function,
Werner Lemberg <=