[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master fdbef53 2/2: [cff] Fix potential bugs in default NDV
From: |
Werner LEMBERG |
Subject: |
[freetype2] master fdbef53 2/2: [cff] Fix potential bugs in default NDV for CFF2. |
Date: |
Fri, 17 Mar 2017 02:32:08 -0400 (EDT) |
branch: master
commit fdbef538f41198a59af8bebfc2841e3ce25b10d1
Author: Dave Arnold <address@hidden>
Commit: Werner Lemberg <address@hidden>
[cff] Fix potential bugs in default NDV for CFF2.
* src/cff/cffload.c (cff_blend_build_vector): Explicitly build blend
vector when `lenNDV' is zero; don't rely on zero-init.
Save `lenNDV' as part of cache key even when `lenNDV' is zero.
---
ChangeLog | 8 ++++++++
src/cff/cffload.c | 15 ++++++++++-----
src/cff/cfftypes.h | 4 ++--
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 86a5818..8035e62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2017-03-17 Dave Arnold <address@hidden>
+ [cff] Fix potential bugs in default NDV for CFF2.
+
+ * src/cff/cffload.c (cff_blend_build_vector): Explicitly build blend
+ vector when `lenNDV' is zero; don't rely on zero-init.
+ Save `lenNDV' as part of cache key even when `lenNDV' is zero.
+
+2017-03-17 Dave Arnold <address@hidden>
+
[cff] Fix CFF2 stack allocation.
* src/cff/cffparse.c (cff_parser_init) add 1 for operator.
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index ed93fb5..91e74f3 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1463,10 +1463,15 @@
/* Note: `lenNDV' could be zero. */
/* In that case, build default blend vector (1,0,0...). */
- /* In the normal case, initialize each component to 1 */
- /* before inner loop. */
- if ( lenNDV != 0 )
- blend->BV[master] = FT_FIXED_ONE; /* default */
+ if ( !lenNDV )
+ {
+ blend->BV[master] = 0;
+ continue;
+ }
+
+ /* In the normal case, initialize each component to 1 */
+ /* before inner loop. */
+ blend->BV[master] = FT_FIXED_ONE; /* default */
/* inner loop steps through axes in this region */
for ( j = 0; j < lenNDV; j++ )
@@ -1529,12 +1534,12 @@
lenNDV * sizeof ( *NDV ) ) )
goto Exit;
- blend->lenNDV = lenNDV;
FT_MEM_COPY( blend->lastNDV,
NDV,
lenNDV * sizeof ( *NDV ) );
}
+ blend->lenNDV = lenNDV;
blend->builtBV = TRUE;
Exit:
diff --git a/src/cff/cfftypes.h b/src/cff/cfftypes.h
index 8d43e28..74f569f 100644
--- a/src/cff/cfftypes.h
+++ b/src/cff/cfftypes.h
@@ -112,8 +112,8 @@ FT_BEGIN_HEADER
FT_UInt shortDeltaCount; /* not used; always zero */
#endif
- FT_UInt regionIdxCount; /* number of regions in this var data */
- FT_UInt* regionIndices; /* array of `regionCount' indices; */
+ FT_UInt regionIdxCount; /* number of region indexes */
+ FT_UInt* regionIndices; /* array of `regionIdxCount' indices; */
/* these index `varRegionList' */
} CFF_VarData;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master fdbef53 2/2: [cff] Fix potential bugs in default NDV for CFF2.,
Werner LEMBERG <=