[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] undefined_scale a97787419: Draft: [base] Undefined scale mea
From: |
Werner Lemberg |
Subject: |
[freetype2] undefined_scale a97787419: Draft: [base] Undefined scale means no scale. |
Date: |
Tue, 18 Jan 2022 22:48:44 -0500 (EST) |
branch: undefined_scale
commit a97787419dfa600484e0da8a5089ea0df7825901
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>
Draft: [base] Undefined scale means no scale.
It might be surprising that FreeType does not have default ppem and
the size has to be set explicitly or face undefined behavior with
undefined variables and errors. This offers an alternative to
missing or zero scale by simply setting FT_LOAD_NO_SCALE.
This is alternative to !132 and discussed in
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43708
* src/base/ftobjs.c (FT_Load_Glyph): Deal with zero scale.
---
src/base/ftobjs.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 18de2f7d4..4f5e7d439 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -858,6 +858,11 @@
library = driver->root.library;
hinter = library->auto_hinter;
+ /* undefined scale means no scale */
+ if ( face->size->metrics.x_ppem == 0 ||
+ face->size->metrics.y_ppem == 0 )
+ load_flags |= FT_LOAD_NO_SCALE;
+
/* resolve load flags dependencies */
if ( load_flags & FT_LOAD_NO_RECURSE )
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] undefined_scale a97787419: Draft: [base] Undefined scale means no scale.,
Werner Lemberg <=