[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 9f3ae57: * src/ftcommon.c (FTDemo_Draw_Header):
From: |
Werner Lemberg |
Subject: |
[freetype2-demos] master 9f3ae57: * src/ftcommon.c (FTDemo_Draw_Header): Handle invalid `size` objects. |
Date: |
Tue, 3 Jan 2023 03:32:49 -0500 (EST) |
branch: master
commit 9f3ae5797955b3261404e7d52ed1d69ba035cdbb
Author: Werner Lemberg <wl@gnu.org>
Commit: Werner Lemberg <wl@gnu.org>
* src/ftcommon.c (FTDemo_Draw_Header): Handle invalid `size` objects.
---
src/ftcommon.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/ftcommon.c b/src/ftcommon.c
index 622e20b..501f191 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -1186,9 +1186,14 @@
strbuf_value( buf ), display->fore_color );
/* ppem, pt and dpi, instance */
- ppem = FT_IS_SCALABLE( face ) ? FT_MulFix( face->units_per_EM,
- face->size->metrics.y_scale )
- : face->size->metrics.y_ppem * 64;
+ if ( face->size )
+ {
+ ppem = FT_IS_SCALABLE( face )
+ ? FT_MulFix( face->units_per_EM, face->size->metrics.y_scale )
+ : face->size->metrics.y_ppem * 64;
+ }
+ else
+ ppem = 0;
strbuf_reset( buf );
if ( res == 72 )
@@ -1205,8 +1210,13 @@
grWriteCellString( display->bitmap, 0, line * HEADER_HEIGHT,
strbuf_value( buf ), display->fore_color );
- if ( abs( ptsize * res / 64 - face->size->metrics.y_ppem * 72 ) > 36 ||
- error_code )
+ /* The demo programs are mainly investigation tools. Normal */
+ /* applications don't need all the extra validity checks to display */
+ /* something for invalid fonts; instead, they can simply reject them. */
+ if ( ( face->size &&
+ abs( ptsize * res / 64
+ - face->size->metrics.y_ppem * 72 ) > 36 ) ||
+ error_code )
{
strbuf_reset( buf );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 9f3ae57: * src/ftcommon.c (FTDemo_Draw_Header): Handle invalid `size` objects.,
Werner Lemberg <=