summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2023-05-06 16:41:13 +0200
committerWerner Lemberg <wl@gnu.org>2023-05-06 16:41:13 +0200
commitb5e57b041b1ee4a86e58b1f63ea1b95fd0b2a3d7 (patch)
treefe506849b790bcde2e2e8b8ad096dff11e62d220
parent9127c68f593d9509bc289518bf907c311425e694 (diff)
downloadfreetype2-b5e57b041b1ee4a86e58b1f63ea1b95fd0b2a3d7.tar.gz
[cid] Improve tracing messages; formatting.
-rw-r--r--include/freetype/internal/ftdrv.h1
-rw-r--r--src/cid/cidgload.c93
-rw-r--r--src/cid/cidriver.c11
3 files changed, 56 insertions, 49 deletions
diff --git a/include/freetype/internal/ftdrv.h b/include/freetype/internal/ftdrv.h
index f78912ca0..9001c07ad 100644
--- a/include/freetype/internal/ftdrv.h
+++ b/include/freetype/internal/ftdrv.h
@@ -157,6 +157,7 @@ FT_BEGIN_HEADER
* A handle to a function used to select a new fixed size. It is used
* only if @FT_FACE_FLAG_FIXED_SIZES is set. Can be set to 0 if the
* scaling done in the base layer suffices.
+ *
* @note:
* Most function pointers, with the exception of `load_glyph`, can be set
* to 0 to indicate a default behaviour.
diff --git a/src/cid/cidgload.c b/src/cid/cidgload.c
index babaf957c..0e6a7ad6b 100644
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -41,35 +41,36 @@
/*
- * A helper function to compute FD number (fd_select),
- * the offset to the head of the glyph data (off1),
- * and the offset to the and of the glyph data (off2).
+ * A helper function to compute FD number (`fd_select`), the offset to the
+ * head of the glyph data (`off1`), and the offset to the and of the glyph
+ * data (`off2`).
*
- * The number how many times cid_get_offset() is invoked
- * can be controlled by the number how many non-NULL
- * arguments are given. If fd_select is non-NULL but
- * off1 and off2 are NULL, cid_get_offset() is invoked
- * only for fd_select, off1/off2 are not validated.
+ * The number how many times `cid_get_offset` is invoked can be controlled
+ * by the number of non-NULL arguments. If `fd_select` is non-NULL but
+ * `off1` and `off2` are NULL, `cid_get_offset` is invoked only for
+ * `fd_select`; `off1` and `off2` are not validated.
*
*/
FT_LOCAL_DEF( FT_Error )
- cid_compute_fd_and_offsets( CID_Face face,
- FT_UInt glyph_index,
- FT_ULong* fd_select_p,
- FT_ULong* off1_p,
- FT_ULong* off2_p )
+ cid_compute_fd_and_offsets( CID_Face face,
+ FT_UInt glyph_index,
+ FT_ULong* fd_select_p,
+ FT_ULong* off1_p,
+ FT_ULong* off2_p )
{
- FT_Error error = FT_Err_Ok;
- CID_FaceInfo cid = &face->cid;
- FT_Stream stream = face->cid_stream;
+ FT_Error error = FT_Err_Ok;
+
+ CID_FaceInfo cid = &face->cid;
+ FT_Stream stream = face->cid_stream;
FT_UInt entry_len = cid->fd_bytes + cid->gd_bytes;
- FT_Byte* p;
- FT_Bool need_frame_exit = 0;
- FT_ULong fd_select, off1, off2;
+
+ FT_Byte* p;
+ FT_Bool need_frame_exit = 0;
+ FT_ULong fd_select, off1, off2;
- /* For ordinary fonts read the CID font dictionary index */
- /* and charstring offset from the CIDMap. */
+ /* For ordinary fonts, read the CID font dictionary index */
+ /* and charstring offset from the CIDMap. */
if ( FT_STREAM_SEEK( cid->data_offset + cid->cidmap_offset +
glyph_index * entry_len ) ||
@@ -78,20 +79,18 @@
need_frame_exit = 1;
- p = (FT_Byte*)stream->cursor;
+ p = (FT_Byte*)stream->cursor;
fd_select = cid_get_offset( &p, cid->fd_bytes );
off1 = cid_get_offset( &p, cid->gd_bytes );
- p += cid->fd_bytes;
- off2 = cid_get_offset( &p, cid->gd_bytes );
+ p += cid->fd_bytes;
+ off2 = cid_get_offset( &p, cid->gd_bytes );
- if (fd_select_p)
+ if ( fd_select_p )
*fd_select_p = fd_select;
-
- if (off1_p)
+ if ( off1_p )
*off1_p = off1;
-
- if (off2_p)
+ if ( off2_p )
*off2_p = off2;
if ( fd_select >= cid->num_dicts )
@@ -101,36 +100,46 @@
* has no charstring to be rendered, similar to GID = 0xFFFF
* in TrueType fonts.
*/
- if ( (cid->fd_bytes == 1 && fd_select == 0xFFU ) ||
- (cid->fd_bytes == 2 && fd_select == 0xFFFFU ) )
+ if ( ( cid->fd_bytes == 1 && fd_select == 0xFFU ) ||
+ ( cid->fd_bytes == 2 && fd_select == 0xFFFFU ) )
{
- FT_TRACE1(( "cid_load_glyph: fail for glyph_index=%d, "
- "FD number %ld is the max integer fitting into %d byte%s\n",
- glyph_index, fd_select, cid->fd_bytes,
- cid->fd_bytes == 1 ? "" : "s" ));
+ FT_TRACE1(( "cid_load_glyph: fail for glyph index %d:\n",
+ glyph_index ));
+ FT_TRACE1(( " FD number %ld is the maximum\n",
+ fd_select ));
+ FT_TRACE1(( " integer fitting into %d byte%s\n",
+ cid->fd_bytes, cid->fd_bytes == 1 ? "" : "s" ));
}
else
{
- FT_TRACE0(( "cid_load_glyph: fail for glyph_index=%d, "
- "FD number %ld > number of dicts %d\n",
- glyph_index, fd_select, cid->num_dicts ));
+ FT_TRACE0(( "cid_load_glyph: fail for glyph index %d:\n",
+ glyph_index ));
+ FT_TRACE0(( " FD number %ld is larger\n",
+ fd_select ));
+ FT_TRACE0(( " than number of dictionaries (%d)\n",
+ cid->num_dicts ));
}
+
error = FT_THROW( Invalid_Offset );
goto Exit;
}
else if ( off2 > stream->size )
{
- FT_TRACE0(( "cid_load_glyph: fail for glyph_index=%d, "
- "end of the glyph data is beyond the data stream\n",
+ FT_TRACE0(( "cid_load_glyph: fail for glyph index %d:\n",
glyph_index ));
+ FT_TRACE0(( " end of the glyph data\n" ));
+ FT_TRACE0(( " is beyond the data stream\n" ));
+
error = FT_THROW( Invalid_Offset );
goto Exit;
}
else if ( off1 > off2 )
{
- FT_TRACE0(( "cid_load_glyph: fail for glyph_index=%d, "
- "the end position of glyph data is set before the start position\n",
+ FT_TRACE0(( "cid_load_glyph: fail for glyph index %d:\n",
glyph_index ));
+ FT_TRACE0(( " the end position of glyph data\n" ));
+ FT_TRACE0(( " is set before the start position\n" ));
+
error = FT_THROW( Invalid_Offset );
}
diff --git a/src/cid/cidriver.c b/src/cid/cidriver.c
index 10cb8c1fd..9669eb73e 100644
--- a/src/cid/cidriver.c
+++ b/src/cid/cidriver.c
@@ -153,16 +153,13 @@
/*
- * Currently, FreeType does not support an incrementally-
- * defined CID-keyed font that stores the glyph description
- * data in /GlyphDirectory array or dictionary.
- * Thus the font loaded by the incremental loading feature
- * is not handled in here.
+ * Currently, FreeType does not support incrementally-defined, CID-keyed
+ * fonts that store the glyph description data in a `/GlyphDirectory`
+ * array or dictionary. Fonts loaded by the incremental loading feature
+ * are thus not handled here.
*/
error = cid_compute_fd_and_offsets( face, glyph_index,
NULL, NULL, NULL );
-
-
if ( error )
*cid = 0;
else