Remove ClassDef->Defined field. This is the comment accompanying it:
authorBehdad Esfahbod <behdad@gnome.org>
Thu, 29 Jan 2009 09:20:08 +0000 (09:20 +0000)
committerBehdad Esfahbod <behdad@src.gnome.org>
Thu, 29 Jan 2009 09:20:08 +0000 (09:20 +0000)
commitc561d69c721105b78bb06d1e3c5f21ca314d924a
treeeb1849bdbf56a2525c4d67a9bad66e962f6331b8
parent9372edd6f020c92609853609dcb504c72551c9c3
Remove ClassDef->Defined field. This is the comment accompanying it:

2009-01-29  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-open.h:
        * pango/opentype/harfbuzz-gdef.c (Make_ClassRange),
        (HB_GDEF_Build_ClassDefinition):
        * pango/opentype/harfbuzz-gpos.c (Load_PosClassRule),
        (Load_ChainPosClassRule):
        * pango/opentype/harfbuzz-gsub.c (Load_SubClassRule),
        (Load_ChainSubClassRule):
        * pango/opentype/harfbuzz-open.c (Load_ClassDef1),
        (Load_ClassDef2), (_HB_OPEN_Load_ClassDefinition),
        (_HB_OPEN_Load_EmptyClassDefinition),
        (_HB_OPEN_Free_ClassDefinition):
        Remove ClassDef->Defined field.  This is the comment accompanying it:

          The `Defined' field is not defined in the OpenType specification
          but apparently needed for processing fonts like trado.ttf: This
          font refers to a class which contains not a single element.  We
          map such classes to class 0.

        The comment is correct that trado.ttf (MS Traditional Arabic) uses
        such classes.  However, in my testing I couldn't identify any
        problems with the font if the special handling is removed.  I also
        processed as many fonts as I could get my hand on and trado.ttf was
        the only not-totally-broken font hitting the special-case code.
        DejaVu fonts hit it too, but I'm sure they do not require the
        special-handling code.  Most probably, that code introduces bugs
        in them.

        The special-casing was consuming lots of memory.  EIGHT MEGABYTES
        for loading DejaVu Sans!  While this could be complete fixed, I
        decided to remove the special-handling code altogether.  I don't
        think it will make any real difference, and if it does, we'll fix
        fonts.  Such hacks will not be in harfbuzz-ng anyway.

        Bug originally reported by nsf.
src/harfbuzz-gdef.c
src/harfbuzz-gpos.c
src/harfbuzz-gsub.c
src/harfbuzz-open.c
src/harfbuzz-open.h