* src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal FreeType error.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
diff --git a/ChangeLog b/ChangeLog
index 78b872b..2c7e0eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,10 @@
* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
+
+ * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
+ FreeType error.
+
2007-06-05 Werner Lemberg <wl@gnu.org>
* src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
diff --git a/src/pfr/pfrcmap.c b/src/pfr/pfrcmap.c
index 05fe68f..c8faee0 100644
--- a/src/pfr/pfrcmap.c
+++ b/src/pfr/pfrcmap.c
@@ -4,7 +4,7 @@
/* */
/* FreeType PFR cmap handling (body). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2007 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -24,7 +24,8 @@
FT_CALLBACK_DEF( FT_Error )
pfr_cmap_init( PFR_CMap cmap )
{
- PFR_Face face = (PFR_Face)FT_CMAP_FACE( cmap );
+ FT_Error error = PFR_Err_Ok;
+ PFR_Face face = (PFR_Face)FT_CMAP_FACE( cmap );
cmap->num_chars = face->phy_font.num_chars;
@@ -39,11 +40,15 @@
for ( n = 1; n < cmap->num_chars; n++ )
{
if ( cmap->chars[n - 1].char_code >= cmap->chars[n].char_code )
- FT_ASSERT( 0 );
+ {
+ error = PFR_Err_Invalid_Table;
+ goto Exit;
+ }
}
}
- return 0;
+ Exit:
+ return error;
}