ref: b5a0a34be7f8512a1b94859de99f94e4fa8dc6d9
parent: 7085dc9b2efa8a419615018bb53207bd7aaa1a73
author: Werner Lemberg <[email protected]>
date: Sun Aug 15 11:01:02 EDT 2004
* src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter to handle possible NULL values properly. Update all callers.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2004-08-15 Werner Lemberg <[email protected]>
+ * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter
+ to handle possible NULL values properly.
+ Update all callers.
+
+2004-08-15 Werner Lemberg <[email protected]>
+
* src/otlayout/gpos.c: Rename counting variables to be more
meaningful.
Add copyright.
--- a/src/otlayout/otlgpos.c
+++ b/src/otlayout/otlgpos.c
@@ -478,6 +478,7 @@
static void
otl_liga_mark2_validate( OTL_Bytes table,
OTL_UInt class_count,
+ OTL_Bool maybe_zero,
OTL_Validator valid )
{
OTL_Bytes p = table;
@@ -493,7 +494,15 @@
for ( ; num_components > 0; num_components-- )
/* scan ligature anchor records */
for ( count = class_count; class_count > 0; class_count-- )
+ {
+ OTL_UInt offset = OTL_NEXT_USHORT( p );
+
+
+ if ( !offset && maybe_zero )
+ continue;
+
otl_anchor_validate( table + OTL_NEXT_USHORT( p ), valid );
+ }
}
@@ -513,7 +522,7 @@
/* scan ligature attach records */
for ( ; ligature_count > 0; ligature_count-- )
- otl_liga_mark2_validate( table + OTL_NEXT_USHORT( p ), class_count,
+ otl_liga_mark2_validate( table + OTL_NEXT_USHORT( p ), class_count, 1,
valid );
}
@@ -593,7 +602,7 @@
otl_coverage_validate( table + coverage2, valid );
otl_mark_array_validate( table + array1, valid );
- otl_liga_mark2_validate( table + array2, num_classes, valid );
+ otl_liga_mark2_validate( table + array2, num_classes, 0, valid );
}
break;