public AttachListTable_val GetAttachListTable_val() { AttachListTable_val alt = null; if (AttachListOffset != 0) { alt = new AttachListTable_val(AttachListOffset, m_bufTable); } return alt; }
/************************ * public methods */ public bool Validate(Validator v, OTFontVal fontOwner) { bool bRet = true; if (v.PerformTest(T.GDEF_Version)) { if (Version.GetUint() == 0x00010000 || Version.GetUint() == 0x00010002 || Version.GetUint() == 0x00010003) { v.Pass(T.GDEF_Version, P.GDEF_P_Version, m_tag, "0x"+ Version.GetUint().ToString("x8")); } else { v.Error(T.GDEF_Version, E.GDEF_E_Version, m_tag, "0x" + Version.GetUint().ToString("x8")); } } if (v.PerformTest(T.GDEF_HeaderOffsets)) { bool bOffsetsOk = true; if (GlyphClassDefOffset != 0) { if (GlyphClassDefOffset > m_bufTable.GetLength()) { v.Error(T.GDEF_HeaderOffsets, E.GDEF_E_HeaderOffset, m_tag, "GlyphClassDef"); bOffsetsOk = false; bRet = false; } } if (AttachListOffset != 0) { if (AttachListOffset > m_bufTable.GetLength()) { v.Error(T.GDEF_HeaderOffsets, E.GDEF_E_HeaderOffset, m_tag, "AttachList"); bOffsetsOk = false; bRet = false; } } if (LigCaretListOffset != 0) { if (LigCaretListOffset > m_bufTable.GetLength()) { v.Error(T.GDEF_HeaderOffsets, E.GDEF_E_HeaderOffset, m_tag, "LigCaretList"); bOffsetsOk = false; bRet = false; } } if (MarkAttachClassDefOffset != 0) { if (MarkAttachClassDefOffset > m_bufTable.GetLength()) { v.Error(T.GDEF_HeaderOffsets, E.GDEF_E_HeaderOffset, m_tag, "MarkAttachClassDef"); bOffsetsOk = false; bRet = false; } } if (MarkGlyphSetsDefOffset != 0) { if (MarkGlyphSetsDefOffset > m_bufTable.GetLength()) { v.Error(T.GDEF_HeaderOffsets, E.GDEF_E_HeaderOffset, m_tag, "MarkGlyphSetsDef"); bOffsetsOk = false; bRet = false; } } if (bOffsetsOk == true) { v.Pass(T.GDEF_HeaderOffsets, P.GDEF_P_HeaderOffsets, m_tag); } } if (v.PerformTest(T.GDEF_Subtables)) { if (GlyphClassDefOffset != 0) { ClassDefTable_val cdt = GetGlyphClassDefTable_val(); cdt.Validate(v, "GlyphClassDef", this); } if (AttachListOffset != 0) { AttachListTable_val alt = GetAttachListTable_val(); alt.Validate(v, "AttachList", this); } if (LigCaretListOffset != 0) { LigCaretListTable_val lclt = GetLigCaretListTable_val(); lclt.Validate(v, "LigCaretList", this); } if (MarkAttachClassDefOffset != 0) { ClassDefTable_val macdt = GetMarkAttachClassDefTable_val(); macdt.Validate(v, "MarkAttachClassDef", this); } if (MarkGlyphSetsDefOffset != 0) { MarkGlyphSetsDefTable_val mgsdt = GetMarkGlyphSetsDefTable_val(); mgsdt.Validate(v, "MarkGlyphSetsDef", this); } } // TODO: Version 1.3: Item Variation Store table return bRet; }