summaryrefslogtreecommitdiff
path: root/src/freetype2/otvalid/otvgsub.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/freetype2/otvalid/otvgsub.c')
-rw-r--r--src/freetype2/otvalid/otvgsub.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/freetype2/otvalid/otvgsub.c b/src/freetype2/otvalid/otvgsub.c
index 91dae0b..ed499d1 100644
--- a/src/freetype2/otvalid/otvgsub.c
+++ b/src/freetype2/otvalid/otvgsub.c
@@ -4,7 +4,7 @@
/* */
/* OpenType GSUB table validation (body). */
/* */
-/* Copyright 2004, 2005 by */
+/* Copyright 2004, 2005, 2007 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -68,7 +68,7 @@
Coverage = table + FT_NEXT_USHORT( p );
DeltaGlyphID = FT_NEXT_SHORT( p );
- otv_Coverage_validate( Coverage, valid );
+ otv_Coverage_validate( Coverage, valid, -1 );
idx = otv_Coverage_get_first( Coverage ) + DeltaGlyphID;
if ( idx < 0 )
@@ -91,19 +91,19 @@
OTV_TRACE(( " (GlyphCount = %d)\n", GlyphCount ));
- otv_Coverage_validate( table + Coverage, valid );
+ otv_Coverage_validate( table + Coverage, valid, GlyphCount );
OTV_LIMIT_CHECK( GlyphCount * 2 );
/* Substitute */
for ( ; GlyphCount > 0; GlyphCount-- )
if ( FT_NEXT_USHORT( p ) >= valid->glyph_count )
- FT_INVALID_DATA;
+ FT_INVALID_GLYPH_ID;
}
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -144,7 +144,7 @@
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -185,7 +185,7 @@
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -259,7 +259,7 @@
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -318,7 +318,7 @@
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -379,7 +379,7 @@
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -415,7 +415,8 @@
{
case 1: /* ExtensionSubstFormat1 */
{
- FT_UInt ExtensionLookupType, ExtensionOffset;
+ FT_UInt ExtensionLookupType;
+ FT_ULong ExtensionOffset;
OTV_Validate_Func validate;
@@ -434,7 +435,7 @@
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -476,12 +477,12 @@
OTV_TRACE(( " (BacktrackGlyphCount = %d)\n", BacktrackGlyphCount ));
- otv_Coverage_validate( Coverage, valid );
+ otv_Coverage_validate( Coverage, valid, -1 );
OTV_LIMIT_CHECK( BacktrackGlyphCount * 2 + 2 );
for ( ; BacktrackGlyphCount > 0; BacktrackGlyphCount-- )
- otv_Coverage_validate( table + FT_NEXT_USHORT( p ), valid );
+ otv_Coverage_validate( table + FT_NEXT_USHORT( p ), valid, -1 );
LookaheadGlyphCount = FT_NEXT_USHORT( p );
@@ -490,7 +491,7 @@
OTV_LIMIT_CHECK( LookaheadGlyphCount * 2 + 2 );
for ( ; LookaheadGlyphCount > 0; LookaheadGlyphCount-- )
- otv_Coverage_validate( table + FT_NEXT_USHORT( p ), valid );
+ otv_Coverage_validate( table + FT_NEXT_USHORT( p ), valid, -1 );
GlyphCount = FT_NEXT_USHORT( p );
@@ -509,7 +510,7 @@
break;
default:
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
}
OTV_EXIT;
@@ -560,7 +561,7 @@
OTV_LIMIT_CHECK( 10 );
if ( FT_NEXT_ULONG( p ) != 0x10000UL ) /* Version */
- FT_INVALID_DATA;
+ FT_INVALID_FORMAT;
ScriptList = FT_NEXT_USHORT( p );
FeatureList = FT_NEXT_USHORT( p );