* src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set `valid->extra2' to 1. This is undocumented in the OpenType 1.5 specification.
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 57 58 59 60 61 62 63
diff --git a/ChangeLog b/ChangeLog
index ae62f7f..923e373 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-15 George Williams <gww@silcom.com>
+
+ * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
+ `valid->extra2' to 1. This is undocumented in the OpenType 1.5
+ specification.
+
2008-06-15 Werner Lemberg <wl@gnu.org>
* src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index 32d5319..b83101a 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -838,6 +838,10 @@ FT_BEGIN_HEADER
/* descender'. Only relevant for scalable */
/* formats. */
/* */
+ /* Note that the bounding box might be off by */
+ /* (at least) one pixel for hinted fonts. See */
+ /* @FT_Size_Metrics for further discussion. */
+ /* */
/* units_per_EM :: The number of font units per EM square for */
/* this face. This is typically 2048 for */
/* TrueType fonts, and 1000 for Type 1 fonts. */
diff --git a/src/otvalid/otvgpos.c b/src/otvalid/otvgpos.c
index 220f714..53025ec 100644
--- a/src/otvalid/otvgpos.c
+++ b/src/otvalid/otvgpos.c
@@ -4,7 +4,7 @@
/* */
/* OpenType GPOS table validation (body). */
/* */
-/* Copyright 2002, 2004, 2005, 2006, 2007 by */
+/* Copyright 2002, 2004, 2005, 2006, 2007, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -644,7 +644,10 @@
/*************************************************************************/
/*************************************************************************/
- /* sets valid->extra2 (0) */
+ /* UNDOCUMENTED (in OpenType 1.5): */
+ /* BaseRecord tables can contain NULL pointers. */
+
+ /* sets valid->extra2 (1) */
static void
otv_MarkBasePos_validate( FT_Bytes table,
@@ -664,7 +667,7 @@
switch ( PosFormat )
{
case 1:
- valid->extra2 = 0;
+ valid->extra2 = 1;
OTV_NEST2( MarkBasePosFormat1, BaseArray );
OTV_RUN( table, valid );
break;