uharfbuzz 0.51.3__tar.gz → 0.51.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of uharfbuzz might be problematic. Click here for more details.

Files changed (484) hide show
  1. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/PKG-INFO +1 -1
  2. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/GPOS.hh +49 -17
  3. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-common.hh +34 -11
  4. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-kerx-table.hh +37 -37
  5. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-morx-table.hh +9 -10
  6. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer.cc +20 -0
  7. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer.hh +28 -13
  8. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-common.cc +3 -0
  9. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-kern.hh +1 -1
  10. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-kern-table.hh +4 -3
  11. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-common.hh +133 -98
  12. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout.hh +0 -12
  13. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-fallback.cc +20 -9
  14. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape.cc +10 -1
  15. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-joining-list.hh +4 -4
  16. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-table.hh +11 -11
  17. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic-table.cc +6 -6
  18. uharfbuzz-0.51.5/harfbuzz/src/hb-ot-shaper-use-table.hh +717 -0
  19. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-vowel-constraints.cc +2 -2
  20. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper.hh +6 -0
  21. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-tag-table.hh +3 -3
  22. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-common.hh +90 -64
  23. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-hvar-table.hh +49 -31
  24. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-priority-queue.hh +11 -1
  25. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-script-list.h +12 -0
  26. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-solver.cc +18 -20
  27. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-solver.hh +11 -11
  28. uharfbuzz-0.51.5/harfbuzz/src/hb-ucd-table.hh +5628 -0
  29. uharfbuzz-0.51.5/harfbuzz/src/hb-unicode-emoji-table.hh +87 -0
  30. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-utf.hh +10 -10
  31. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-vector.hh +26 -2
  32. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-version.h +3 -3
  33. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-subset-instancer-solver.cc +64 -32
  34. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz.cpp +16 -5
  35. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz_test.cpp +3 -3
  36. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_version.py +3 -3
  37. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/PKG-INFO +1 -1
  38. uharfbuzz-0.51.3/harfbuzz/src/hb-ot-shaper-use-table.hh +0 -718
  39. uharfbuzz-0.51.3/harfbuzz/src/hb-ucd-table.hh +0 -5696
  40. uharfbuzz-0.51.3/harfbuzz/src/hb-unicode-emoji-table.hh +0 -77
  41. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.coveragerc +0 -0
  42. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.github/workflows/ci.yml +0 -0
  43. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.gitignore +0 -0
  44. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.gitmodules +0 -0
  45. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.readthedocs.yml +0 -0
  46. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/LICENSE +0 -0
  47. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/MANIFEST.in +0 -0
  48. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/README.md +0 -0
  49. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/.gitignore +0 -0
  50. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/requirements.in +0 -0
  51. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/requirements.txt +0 -0
  52. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/source/conf.py +0 -0
  53. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/source/index.rst +0 -0
  54. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/source/reference.rst +0 -0
  55. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/CBDT/CBDT.hh +0 -0
  56. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/COLR/COLR.hh +0 -0
  57. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/COLR/colrv1-closure.hh +0 -0
  58. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/CPAL/CPAL.hh +0 -0
  59. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/sbix/sbix.hh +0 -0
  60. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/svg/svg.hh +0 -0
  61. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/Coverage.hh +0 -0
  62. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/CoverageFormat1.hh +0 -0
  63. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh +0 -0
  64. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/RangeRecord.hh +0 -0
  65. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GDEF/GDEF.hh +0 -0
  66. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/Anchor.hh +0 -0
  67. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat1.hh +0 -0
  68. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat2.hh +0 -0
  69. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat3.hh +0 -0
  70. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorMatrix.hh +0 -0
  71. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ChainContextPos.hh +0 -0
  72. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/Common.hh +0 -0
  73. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ContextPos.hh +0 -0
  74. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/CursivePos.hh +0 -0
  75. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/CursivePosFormat1.hh +0 -0
  76. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ExtensionPos.hh +0 -0
  77. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/LigatureArray.hh +0 -0
  78. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkArray.hh +0 -0
  79. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkBasePos.hh +0 -0
  80. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkBasePosFormat1.hh +0 -0
  81. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkLigPos.hh +0 -0
  82. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkLigPosFormat1.hh +0 -0
  83. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkMarkPos.hh +0 -0
  84. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkMarkPosFormat1.hh +0 -0
  85. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkRecord.hh +0 -0
  86. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairPos.hh +0 -0
  87. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairPosFormat1.hh +0 -0
  88. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairPosFormat2.hh +0 -0
  89. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairSet.hh +0 -0
  90. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairValueRecord.hh +0 -0
  91. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PosLookup.hh +0 -0
  92. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PosLookupSubTable.hh +0 -0
  93. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/SinglePos.hh +0 -0
  94. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/SinglePosFormat1.hh +0 -0
  95. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/SinglePosFormat2.hh +0 -0
  96. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ValueFormat.hh +0 -0
  97. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/AlternateSet.hh +0 -0
  98. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/AlternateSubst.hh +0 -0
  99. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/AlternateSubstFormat1.hh +0 -0
  100. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ChainContextSubst.hh +0 -0
  101. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/Common.hh +0 -0
  102. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ContextSubst.hh +0 -0
  103. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ExtensionSubst.hh +0 -0
  104. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/GSUB.hh +0 -0
  105. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/Ligature.hh +0 -0
  106. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/LigatureSet.hh +0 -0
  107. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/LigatureSubst.hh +0 -0
  108. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/LigatureSubstFormat1.hh +0 -0
  109. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/MultipleSubst.hh +0 -0
  110. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/MultipleSubstFormat1.hh +0 -0
  111. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ReverseChainSingleSubst.hh +0 -0
  112. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ReverseChainSingleSubstFormat1.hh +0 -0
  113. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/Sequence.hh +0 -0
  114. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SingleSubst.hh +0 -0
  115. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SingleSubstFormat1.hh +0 -0
  116. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SingleSubstFormat2.hh +0 -0
  117. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SubstLookup.hh +0 -0
  118. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SubstLookupSubTable.hh +0 -0
  119. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/types.hh +0 -0
  120. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Var/VARC/VARC.cc +0 -0
  121. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Var/VARC/VARC.hh +0 -0
  122. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Var/VARC/coord-setter.hh +0 -0
  123. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/CompositeGlyph.hh +0 -0
  124. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/Glyph.hh +0 -0
  125. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/GlyphHeader.hh +0 -0
  126. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/SimpleGlyph.hh +0 -0
  127. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/SubsetGlyph.hh +0 -0
  128. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/composite-iter.hh +0 -0
  129. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/glyf-helpers.hh +0 -0
  130. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/glyf.hh +0 -0
  131. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/loca.hh +0 -0
  132. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/path-builder.hh +0 -0
  133. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/name/name.hh +0 -0
  134. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/classdef-graph.hh +0 -0
  135. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/coverage-graph.hh +0 -0
  136. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/graph.hh +0 -0
  137. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/gsubgpos-context.cc +0 -0
  138. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/gsubgpos-context.hh +0 -0
  139. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/gsubgpos-graph.hh +0 -0
  140. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/ligature-graph.hh +0 -0
  141. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/markbasepos-graph.hh +0 -0
  142. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/pairpos-graph.hh +0 -0
  143. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/serialize.hh +0 -0
  144. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/split-helpers.hh +0 -0
  145. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/test-classdef-graph.cc +0 -0
  146. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/harfbuzz-subset.cc +0 -0
  147. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/harfbuzz.cc +0 -0
  148. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-ankr-table.hh +0 -0
  149. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-bsln-table.hh +0 -0
  150. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-feat-table.hh +0 -0
  151. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-just-table.hh +0 -0
  152. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-opbd-table.hh +0 -0
  153. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-trak-table.hh +0 -0
  154. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout.cc +0 -0
  155. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout.h +0 -0
  156. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout.hh +0 -0
  157. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-ltag-table.hh +0 -0
  158. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-map.cc +0 -0
  159. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-map.hh +0 -0
  160. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat.h +0 -0
  161. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-algs.hh +0 -0
  162. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-array.hh +0 -0
  163. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-atomic.hh +0 -0
  164. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bimap.hh +0 -0
  165. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-page.hh +0 -0
  166. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-set-invertible.hh +0 -0
  167. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-set.hh +0 -0
  168. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-vector.hh +0 -0
  169. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-blob.cc +0 -0
  170. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-blob.h +0 -0
  171. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-blob.hh +0 -0
  172. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-deserialize-json.hh +0 -0
  173. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-deserialize-text-glyphs.hh +0 -0
  174. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-deserialize-text-unicode.hh +0 -0
  175. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-serialize.cc +0 -0
  176. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-verify.cc +0 -0
  177. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer.h +0 -0
  178. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cache.hh +0 -0
  179. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo-utils.cc +0 -0
  180. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo-utils.hh +0 -0
  181. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo.cc +0 -0
  182. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo.h +0 -0
  183. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff-interp-common.hh +0 -0
  184. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff-interp-cs-common.hh +0 -0
  185. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff-interp-dict-common.hh +0 -0
  186. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff1-interp-cs.hh +0 -0
  187. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff2-interp-cs.hh +0 -0
  188. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-common.h +0 -0
  189. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-config.hh +0 -0
  190. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext-font.cc +0 -0
  191. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext-shape.cc +0 -0
  192. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext.cc +0 -0
  193. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext.h +0 -0
  194. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext.hh +0 -0
  195. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cplusplus.hh +0 -0
  196. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-debug.hh +0 -0
  197. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-decycler.hh +0 -0
  198. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-deprecated.h +0 -0
  199. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite-font.cc +0 -0
  200. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite-shape.cc +0 -0
  201. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite.cc +0 -0
  202. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite.h +0 -0
  203. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite.hh +0 -0
  204. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-dispatch.hh +0 -0
  205. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-draw.cc +0 -0
  206. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-draw.h +0 -0
  207. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-draw.hh +0 -0
  208. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face-builder.cc +0 -0
  209. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face.cc +0 -0
  210. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face.h +0 -0
  211. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face.hh +0 -0
  212. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-fallback-shape.cc +0 -0
  213. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-font.cc +0 -0
  214. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-font.h +0 -0
  215. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-font.hh +0 -0
  216. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-fontations.h +0 -0
  217. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ft-colr.hh +0 -0
  218. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ft.cc +0 -0
  219. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ft.h +0 -0
  220. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gdi.cc +0 -0
  221. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gdi.h +0 -0
  222. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-geometry.hh +0 -0
  223. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-glib.cc +0 -0
  224. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-glib.h +0 -0
  225. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gobject-structs.cc +0 -0
  226. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gobject-structs.h +0 -0
  227. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gobject.h +0 -0
  228. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-graphite2.cc +0 -0
  229. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-graphite2.h +0 -0
  230. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-harfrust.cc +0 -0
  231. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-icu.cc +0 -0
  232. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-icu.h +0 -0
  233. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-iter.hh +0 -0
  234. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-kbts.cc +0 -0
  235. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-limits.hh +0 -0
  236. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-machinery.hh +0 -0
  237. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-map.cc +0 -0
  238. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-map.h +0 -0
  239. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-map.hh +0 -0
  240. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-meta.hh +0 -0
  241. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ms-feature-ranges.hh +0 -0
  242. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-multimap.hh +0 -0
  243. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-mutex.hh +0 -0
  244. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-null.hh +0 -0
  245. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-number-parser.hh +0 -0
  246. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-number.cc +0 -0
  247. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-number.hh +0 -0
  248. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-object.hh +0 -0
  249. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-open-file.hh +0 -0
  250. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-open-type.hh +0 -0
  251. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff-common.hh +0 -0
  252. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff1-std-str.hh +0 -0
  253. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff1-table.cc +0 -0
  254. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff1-table.hh +0 -0
  255. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff2-table.cc +0 -0
  256. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff2-table.hh +0 -0
  257. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cmap-table.hh +0 -0
  258. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-color.cc +0 -0
  259. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-color.h +0 -0
  260. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-deprecated.h +0 -0
  261. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-face-table-list.hh +0 -0
  262. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-face.cc +0 -0
  263. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-face.hh +0 -0
  264. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-font.cc +0 -0
  265. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-font.h +0 -0
  266. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-gasp-table.hh +0 -0
  267. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-glyf-table.hh +0 -0
  268. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-hdmx-table.hh +0 -0
  269. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-head-table.hh +0 -0
  270. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-hhea-table.hh +0 -0
  271. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-hmtx-table.hh +0 -0
  272. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-base-table.hh +0 -0
  273. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gdef-table.hh +0 -0
  274. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gpos-table.hh +0 -0
  275. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gsub-table.hh +0 -0
  276. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gsubgpos.hh +0 -0
  277. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-jstf-table.hh +0 -0
  278. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout.cc +0 -0
  279. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout.h +0 -0
  280. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-map.cc +0 -0
  281. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-map.hh +0 -0
  282. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-math-table.hh +0 -0
  283. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-math.cc +0 -0
  284. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-math.h +0 -0
  285. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-maxp-table.hh +0 -0
  286. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-meta-table.hh +0 -0
  287. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-meta.cc +0 -0
  288. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-meta.h +0 -0
  289. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-metrics.cc +0 -0
  290. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-metrics.h +0 -0
  291. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-metrics.hh +0 -0
  292. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name-language-static.hh +0 -0
  293. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name-language.hh +0 -0
  294. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name-table.hh +0 -0
  295. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name.cc +0 -0
  296. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name.h +0 -0
  297. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-os2-table.hh +0 -0
  298. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-os2-unicode-ranges.hh +0 -0
  299. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-post-macroman.hh +0 -0
  300. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-post-table-v2subset.hh +0 -0
  301. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-post-table.hh +0 -0
  302. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-fallback.hh +0 -0
  303. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-normalize.cc +0 -0
  304. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-normalize.hh +0 -0
  305. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape.h +0 -0
  306. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape.hh +0 -0
  307. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-fallback.hh +0 -0
  308. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-pua.hh +0 -0
  309. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-win1256.hh +0 -0
  310. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic.cc +0 -0
  311. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic.hh +0 -0
  312. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-default.cc +0 -0
  313. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-hangul.cc +0 -0
  314. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-hebrew.cc +0 -0
  315. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic-machine.hh +0 -0
  316. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic.cc +0 -0
  317. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic.hh +0 -0
  318. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-khmer-machine.hh +0 -0
  319. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-khmer.cc +0 -0
  320. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-myanmar-machine.hh +0 -0
  321. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-myanmar.cc +0 -0
  322. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-syllabic.cc +0 -0
  323. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-syllabic.hh +0 -0
  324. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-thai.cc +0 -0
  325. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-use-machine.hh +0 -0
  326. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-use.cc +0 -0
  327. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-vowel-constraints.hh +0 -0
  328. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-stat-table.hh +0 -0
  329. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-tag.cc +0 -0
  330. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-avar-table.hh +0 -0
  331. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-cvar-table.hh +0 -0
  332. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-fvar-table.hh +0 -0
  333. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-gvar-table.hh +0 -0
  334. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-mvar-table.hh +0 -0
  335. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-varc-table.hh +0 -0
  336. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var.cc +0 -0
  337. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var.h +0 -0
  338. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-vorg-table.hh +0 -0
  339. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot.h +0 -0
  340. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-outline.cc +0 -0
  341. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-outline.hh +0 -0
  342. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-bounded.cc +0 -0
  343. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-bounded.hh +0 -0
  344. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-extents.cc +0 -0
  345. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-extents.hh +0 -0
  346. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint.cc +0 -0
  347. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint.h +0 -0
  348. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint.hh +0 -0
  349. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-pool.hh +0 -0
  350. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-repacker.hh +0 -0
  351. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-sanitize.hh +0 -0
  352. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-serialize.hh +0 -0
  353. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set-digest.hh +0 -0
  354. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set.cc +0 -0
  355. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set.h +0 -0
  356. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set.hh +0 -0
  357. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape-plan.cc +0 -0
  358. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape-plan.h +0 -0
  359. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape-plan.hh +0 -0
  360. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape.cc +0 -0
  361. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape.h +0 -0
  362. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper-impl.hh +0 -0
  363. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper-list.hh +0 -0
  364. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper.cc +0 -0
  365. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper.hh +0 -0
  366. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-static.cc +0 -0
  367. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-string-array.hh +0 -0
  368. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-style.cc +0 -0
  369. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-style.h +0 -0
  370. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-accelerator.hh +0 -0
  371. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff-common.cc +0 -0
  372. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff-common.hh +0 -0
  373. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff1.cc +0 -0
  374. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff2.cc +0 -0
  375. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-input.cc +0 -0
  376. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-input.hh +0 -0
  377. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-iup.cc +0 -0
  378. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-iup.hh +0 -0
  379. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan-layout.cc +0 -0
  380. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan-member-list.hh +0 -0
  381. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan-var.cc +0 -0
  382. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan.cc +0 -0
  383. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan.hh +0 -0
  384. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-serialize.cc +0 -0
  385. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-serialize.h +0 -0
  386. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-cff.cc +0 -0
  387. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-color.cc +0 -0
  388. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-layout.cc +0 -0
  389. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-other.cc +0 -0
  390. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-var.cc +0 -0
  391. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table.hh +0 -0
  392. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset.cc +0 -0
  393. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset.h +0 -0
  394. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset.hh +0 -0
  395. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ucd.cc +0 -0
  396. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-unicode.cc +0 -0
  397. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-unicode.h +0 -0
  398. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-unicode.hh +0 -0
  399. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-uniscribe.cc +0 -0
  400. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-uniscribe.h +0 -0
  401. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-blob.hh +0 -0
  402. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-buffer.hh +0 -0
  403. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-common.hh +0 -0
  404. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-face.hh +0 -0
  405. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-font.hh +0 -0
  406. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-list.hh +0 -0
  407. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-shape.hh +0 -0
  408. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api.cc +0 -0
  409. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api.h +0 -0
  410. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api.hh +0 -0
  411. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-shape.cc +0 -0
  412. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb.h +0 -0
  413. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb.hh +0 -0
  414. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/main.cc +0 -0
  415. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-algs.cc +0 -0
  416. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-array.cc +0 -0
  417. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-bimap.cc +0 -0
  418. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-buffer-serialize.cc +0 -0
  419. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-cff.cc +0 -0
  420. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-decycler.cc +0 -0
  421. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-gpos-size-params.cc +0 -0
  422. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-gsub-get-alternates.cc +0 -0
  423. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-gsub-would-substitute.cc +0 -0
  424. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-item-varstore.cc +0 -0
  425. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-iter.cc +0 -0
  426. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-machinery.cc +0 -0
  427. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-map.cc +0 -0
  428. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-multimap.cc +0 -0
  429. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-number.cc +0 -0
  430. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-ot-glyphname.cc +0 -0
  431. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-ot-meta.cc +0 -0
  432. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-ot-name.cc +0 -0
  433. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-priority-queue.cc +0 -0
  434. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-repacker.cc +0 -0
  435. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-serialize.cc +0 -0
  436. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-set.cc +0 -0
  437. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-tuple-varstore.cc +0 -0
  438. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-unicode-ranges.cc +0 -0
  439. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-use-table.cc +0 -0
  440. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-vector.cc +0 -0
  441. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test.cc +0 -0
  442. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/wasm/graphite/shape.cc +0 -0
  443. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/wasm/sample/c/shape-fallback.cc +0 -0
  444. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/wasm/sample/c/shape-ot.cc +0 -0
  445. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/pyproject.toml +0 -0
  446. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/requirements-dev.txt +0 -0
  447. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/setup.cfg +0 -0
  448. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/setup.py +0 -0
  449. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/__init__.py +0 -0
  450. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_draw_test_funcs.cc +0 -0
  451. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz.pyx +0 -0
  452. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz_test.pyx +0 -0
  453. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/charfbuzz.pxd +0 -0
  454. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/SOURCES.txt +0 -0
  455. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/dependency_links.txt +0 -0
  456. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/not-zip-safe +0 -0
  457. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/top_level.txt +0 -0
  458. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/AUTHORS_StixTwoMath.txt +0 -0
  459. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/AdobeBlank.fea +0 -0
  460. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/AdobeBlank.subset.ttf +0 -0
  461. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_AdobeBlank.txt +0 -0
  462. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_ChromaCheck_colr.txt +0 -0
  463. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_MutatorSans.txt +0 -0
  464. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_OpenSans.txt +0 -0
  465. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_STIXTwoMath.txt +0 -0
  466. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/MutatorSans-VF.subset.ttf +0 -0
  467. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/OpenSans.subset.ttf +0 -0
  468. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/STIXTwoMath-Regular.ttf +0 -0
  469. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/SparseFont.ttf +0 -0
  470. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/chromacheck-colr.ttf +0 -0
  471. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/hand-10 +0 -0
  472. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-10 +0 -0
  473. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-106 +0 -0
  474. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-116 +0 -0
  475. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-123 +0 -0
  476. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-154 +0 -0
  477. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-165 +0 -0
  478. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-175 +0 -0
  479. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-6 +0 -0
  480. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-92 +0 -0
  481. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/noto_handwriting-cff2_colr_1.otf +0 -0
  482. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/test_glyphs-glyf_colr_1.ttf +0 -0
  483. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/test_uharfbuzz.py +0 -0
  484. {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uharfbuzz
3
- Version: 0.51.3
3
+ Version: 0.51.5
4
4
  Summary: Streamlined Cython bindings for the harfbuzz shaping engine
5
5
  Home-page: https://github.com/trufont/uharfbuzz
6
6
  Author: Adrien Tétar
@@ -80,9 +80,8 @@ propagate_attachment_offsets (hb_glyph_position_t *pos,
80
80
  {
81
81
  /* Adjusts offsets of attached glyphs (both cursive and mark) to accumulate
82
82
  * offset of glyph they are attached to. */
83
- int chain = pos[i].attach_chain(), type = pos[i].attach_type();
84
- if (likely (!chain))
85
- return;
83
+ int chain = pos[i].attach_chain();
84
+ int type = pos[i].attach_type();
86
85
 
87
86
  pos[i].attach_chain() = 0;
88
87
 
@@ -94,7 +93,8 @@ propagate_attachment_offsets (hb_glyph_position_t *pos,
94
93
  if (unlikely (!nesting_level))
95
94
  return;
96
95
 
97
- propagate_attachment_offsets (pos, len, j, direction, nesting_level - 1);
96
+ if (pos[j].attach_chain())
97
+ propagate_attachment_offsets (pos, len, j, direction, nesting_level - 1);
98
98
 
99
99
  assert (!!(type & GPOS_impl::ATTACH_TYPE_MARK) ^ !!(type & GPOS_impl::ATTACH_TYPE_CURSIVE));
100
100
 
@@ -110,17 +110,37 @@ propagate_attachment_offsets (hb_glyph_position_t *pos,
110
110
  pos[i].x_offset += pos[j].x_offset;
111
111
  pos[i].y_offset += pos[j].y_offset;
112
112
 
113
- assert (j < i);
114
- if (HB_DIRECTION_IS_FORWARD (direction))
115
- for (unsigned int k = j; k < i; k++) {
116
- pos[i].x_offset -= pos[k].x_advance;
117
- pos[i].y_offset -= pos[k].y_advance;
118
- }
119
- else
120
- for (unsigned int k = j + 1; k < i + 1; k++) {
121
- pos[i].x_offset += pos[k].x_advance;
122
- pos[i].y_offset += pos[k].y_advance;
123
- }
113
+ // i is the position of the mark; j is the base.
114
+ if (j < i)
115
+ {
116
+ /* This is the common case: mark follows base.
117
+ * And currently the only way in OpenType. */
118
+ if (HB_DIRECTION_IS_FORWARD (direction))
119
+ for (unsigned int k = j; k < i; k++) {
120
+ pos[i].x_offset -= pos[k].x_advance;
121
+ pos[i].y_offset -= pos[k].y_advance;
122
+ }
123
+ else
124
+ for (unsigned int k = j + 1; k < i + 1; k++) {
125
+ pos[i].x_offset += pos[k].x_advance;
126
+ pos[i].y_offset += pos[k].y_advance;
127
+ }
128
+ }
129
+ else // j > i
130
+ {
131
+ /* This can happen with `kerx`: a mark attaching
132
+ * to a base after it in the logical order. */
133
+ if (HB_DIRECTION_IS_FORWARD (direction))
134
+ for (unsigned int k = i; k < j; k++) {
135
+ pos[i].x_offset += pos[k].x_advance;
136
+ pos[i].y_offset += pos[k].y_advance;
137
+ }
138
+ else
139
+ for (unsigned int k = i + 1; k < j + 1; k++) {
140
+ pos[i].x_offset -= pos[k].x_advance;
141
+ pos[i].y_offset -= pos[k].y_advance;
142
+ }
143
+ }
124
144
  }
125
145
  }
126
146
 
@@ -149,8 +169,20 @@ GPOS::position_finish_offsets (hb_font_t *font, hb_buffer_t *buffer)
149
169
 
150
170
  /* Handle attachments */
151
171
  if (buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_GPOS_ATTACHMENT)
152
- for (unsigned i = 0; i < len; i++)
153
- propagate_attachment_offsets (pos, len, i, direction);
172
+ {
173
+ auto *pos = buffer->pos;
174
+ // https://github.com/harfbuzz/harfbuzz/issues/5514
175
+ if (HB_DIRECTION_IS_FORWARD (direction))
176
+ {
177
+ for (unsigned i = 0; i < len; i++)
178
+ if (pos[i].attach_chain())
179
+ propagate_attachment_offsets (pos, len, i, direction);
180
+ } else {
181
+ for (unsigned i = len; i-- > 0; )
182
+ if (pos[i].attach_chain())
183
+ propagate_attachment_offsets (pos, len, i, direction);
184
+ }
185
+ }
154
186
 
155
187
  if (unlikely (font->slant_xy) &&
156
188
  HB_DIRECTION_IS_HORIZONTAL (direction))
@@ -78,7 +78,10 @@ struct hb_aat_scratch_t
78
78
  {
79
79
  hb_bit_set_t *s = buffer_glyph_set.get_acquire ();
80
80
  if (s && buffer_glyph_set.cmpexch (s, nullptr))
81
+ {
82
+ s->clear ();
81
83
  return s;
84
+ }
82
85
 
83
86
  s = (hb_bit_set_t *) hb_calloc (1, sizeof (hb_bit_set_t));
84
87
  if (unlikely (!s))
@@ -123,13 +126,14 @@ struct hb_aat_apply_context_t :
123
126
  const OT::GDEF &gdef;
124
127
  bool has_glyph_classes;
125
128
  const hb_sorted_vector_t<hb_aat_map_t::range_flags_t> *range_flags = nullptr;
129
+ hb_mask_t subtable_flags = 0;
130
+ bool buffer_is_reversed = false;
131
+ // Caches
126
132
  bool using_buffer_glyph_set = false;
127
133
  hb_bit_set_t *buffer_glyph_set = nullptr;
128
- const hb_bit_set_t *left_set = nullptr;
129
- const hb_bit_set_t *right_set = nullptr;
130
- const hb_bit_set_t *machine_glyph_set = nullptr;
134
+ const hb_bit_set_t *first_set = nullptr;
135
+ const hb_bit_set_t *second_set = nullptr;
131
136
  hb_aat_class_cache_t *machine_class_cache = nullptr;
132
- hb_mask_t subtable_flags = 0;
133
137
 
134
138
  /* Unused. For debug tracing only. */
135
139
  unsigned int lookup_index;
@@ -145,6 +149,12 @@ struct hb_aat_apply_context_t :
145
149
 
146
150
  void set_lookup_index (unsigned int i) { lookup_index = i; }
147
151
 
152
+ void reverse_buffer ()
153
+ {
154
+ buffer->reverse ();
155
+ buffer_is_reversed = !buffer_is_reversed;
156
+ }
157
+
148
158
  void setup_buffer_glyph_set ()
149
159
  {
150
160
  using_buffer_glyph_set = buffer->len >= 4 && buffer_glyph_set;
@@ -155,11 +165,11 @@ struct hb_aat_apply_context_t :
155
165
  bool buffer_intersects_machine () const
156
166
  {
157
167
  if (likely (using_buffer_glyph_set))
158
- return buffer_glyph_set->intersects (*machine_glyph_set);
168
+ return buffer_glyph_set->intersects (*first_set);
159
169
 
160
170
  // Faster for shorter buffers.
161
171
  for (unsigned i = 0; i < buffer->len; i++)
162
- if (machine_glyph_set->has (buffer->info[i].codepoint))
172
+ if (first_set->has (buffer->info[i].codepoint))
163
173
  return true;
164
174
  return false;
165
175
  }
@@ -638,6 +648,23 @@ struct LookupFormat10
638
648
  glyphs.add_range (firstGlyph, firstGlyph + glyphCount - 1);
639
649
  }
640
650
 
651
+ template <typename set_t, typename filter_t>
652
+ void collect_glyphs_filtered (set_t &glyphs, const filter_t &filter) const
653
+ {
654
+ if (unlikely (!glyphCount)) return;
655
+ if (firstGlyph == DELETED_GLYPH) return;
656
+ const HBUINT8 *p = valueArrayZ.arrayZ;
657
+ for (unsigned i = 0; i < glyphCount; i++)
658
+ {
659
+ unsigned int v = 0;
660
+ unsigned int count = valueSize;
661
+ for (unsigned int j = 0; j < count; j++)
662
+ v = (v << 8) | *p++;
663
+ if (filter (v))
664
+ glyphs.add (firstGlyph + i);
665
+ }
666
+ }
667
+
641
668
  bool sanitize (hb_sanitize_context_t *c) const
642
669
  {
643
670
  TRACE_SANITIZE (this);
@@ -708,6 +735,7 @@ struct Lookup
708
735
  case 4: hb_barrier (); u.format4.collect_glyphs_filtered (glyphs, filter); return;
709
736
  case 6: hb_barrier (); u.format6.collect_glyphs_filtered (glyphs, filter); return;
710
737
  case 8: hb_barrier (); u.format8.collect_glyphs_filtered (glyphs, filter); return;
738
+ case 10: hb_barrier (); u.format10.collect_glyphs_filtered (glyphs, filter); return;
711
739
  default:return;
712
740
  }
713
741
  }
@@ -837,11 +865,6 @@ struct StateTable
837
865
  STATE_START_OF_LINE = 1,
838
866
  };
839
867
 
840
- template <typename set_t>
841
- void collect_glyphs (set_t &glyphs, unsigned num_glyphs) const
842
- {
843
- (this+classTable).collect_glyphs (glyphs, num_glyphs);
844
- }
845
868
  template <typename set_t, typename table_t>
846
869
  void collect_initial_glyphs (set_t &glyphs, unsigned num_glyphs, const table_t &table) const
847
870
  {
@@ -120,12 +120,12 @@ struct KerxSubTableFormat0
120
120
  }
121
121
 
122
122
  template <typename set_t>
123
- void collect_glyphs (set_t &left_set, set_t &right_set, unsigned num_glyphs) const
123
+ void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
124
124
  {
125
125
  for (const KernPair& pair : pairs)
126
126
  {
127
- left_set.add (pair.left);
128
- right_set.add (pair.right);
127
+ first_set.add (pair.left);
128
+ second_set.add (pair.right);
129
129
  }
130
130
  }
131
131
 
@@ -140,7 +140,7 @@ struct KerxSubTableFormat0
140
140
 
141
141
  int get_kerning (hb_codepoint_t left, hb_codepoint_t right) const
142
142
  {
143
- if (!(*c->left_set)[left] || !(*c->right_set)[right]) return 0;
143
+ if (!(*c->first_set)[left] || !(*c->second_set)[right]) return 0;
144
144
  return table.get_kerning (left, right, c);
145
145
  }
146
146
  };
@@ -396,10 +396,10 @@ struct KerxSubTableFormat1
396
396
  }
397
397
 
398
398
  template <typename set_t>
399
- void collect_glyphs (set_t &left_set, set_t &right_set, unsigned num_glyphs) const
399
+ void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
400
400
  {
401
- machine.collect_initial_glyphs (left_set, num_glyphs, *this);
402
- //machine.collect_glyphs (right_set, num_glyphs); // right_set is unused for machine kerning
401
+ machine.collect_initial_glyphs (first_set, num_glyphs, *this);
402
+ //machine.collect_glyphs (second_set, num_glyphs); // second_set is unused for machine kerning
403
403
  }
404
404
 
405
405
  protected:
@@ -451,10 +451,10 @@ struct KerxSubTableFormat2
451
451
  }
452
452
 
453
453
  template <typename set_t>
454
- void collect_glyphs (set_t &left_set, set_t &right_set, unsigned num_glyphs) const
454
+ void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
455
455
  {
456
- (this+leftClassTable).collect_glyphs (left_set, num_glyphs);
457
- (this+rightClassTable).collect_glyphs (right_set, num_glyphs);
456
+ (this+leftClassTable).collect_glyphs (first_set, num_glyphs);
457
+ (this+rightClassTable).collect_glyphs (second_set, num_glyphs);
458
458
  }
459
459
 
460
460
  struct accelerator_t
@@ -468,7 +468,7 @@ struct KerxSubTableFormat2
468
468
 
469
469
  int get_kerning (hb_codepoint_t left, hb_codepoint_t right) const
470
470
  {
471
- if (!(*c->left_set)[left] || !(*c->right_set)[right]) return 0;
471
+ if (!(*c->first_set)[left] || !(*c->second_set)[right]) return 0;
472
472
  return table.get_kerning (left, right, c);
473
473
  }
474
474
  };
@@ -629,6 +629,8 @@ struct KerxSubTableFormat4
629
629
  }
630
630
  o.attach_type() = OT::Layout::GPOS_impl::ATTACH_TYPE_MARK;
631
631
  o.attach_chain() = (int) mark - (int) buffer->idx;
632
+ if (c->buffer_is_reversed)
633
+ o.attach_chain() = -o.attach_chain();
632
634
  buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_GPOS_ATTACHMENT;
633
635
  }
634
636
 
@@ -671,10 +673,10 @@ struct KerxSubTableFormat4
671
673
  }
672
674
 
673
675
  template <typename set_t>
674
- void collect_glyphs (set_t &left_set, set_t &right_set, unsigned num_glyphs) const
676
+ void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
675
677
  {
676
- machine.collect_initial_glyphs (left_set, num_glyphs, *this);
677
- //machine.collect_glyphs (right_set, num_glyphs); // right_set is unused for machine kerning
678
+ machine.collect_initial_glyphs (first_set, num_glyphs, *this);
679
+ //machine.collect_glyphs (second_set, num_glyphs); // second_set is unused for machine kerning
678
680
  }
679
681
 
680
682
  protected:
@@ -762,19 +764,19 @@ struct KerxSubTableFormat6
762
764
  }
763
765
 
764
766
  template <typename set_t>
765
- void collect_glyphs (set_t &left_set, set_t &right_set, unsigned num_glyphs) const
767
+ void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
766
768
  {
767
769
  if (is_long ())
768
770
  {
769
771
  const auto &t = u.l;
770
- (this+t.rowIndexTable).collect_glyphs (left_set, num_glyphs);
771
- (this+t.columnIndexTable).collect_glyphs (right_set, num_glyphs);
772
+ (this+t.rowIndexTable).collect_glyphs (first_set, num_glyphs);
773
+ (this+t.columnIndexTable).collect_glyphs (second_set, num_glyphs);
772
774
  }
773
775
  else
774
776
  {
775
777
  const auto &t = u.s;
776
- (this+t.rowIndexTable).collect_glyphs (left_set, num_glyphs);
777
- (this+t.columnIndexTable).collect_glyphs (right_set, num_glyphs);
778
+ (this+t.rowIndexTable).collect_glyphs (first_set, num_glyphs);
779
+ (this+t.columnIndexTable).collect_glyphs (second_set, num_glyphs);
778
780
  }
779
781
  }
780
782
 
@@ -789,7 +791,7 @@ struct KerxSubTableFormat6
789
791
 
790
792
  int get_kerning (hb_codepoint_t left, hb_codepoint_t right) const
791
793
  {
792
- if (!(*c->left_set)[left] || !(*c->right_set)[right]) return 0;
794
+ if (!(*c->first_set)[left] || !(*c->second_set)[right]) return 0;
793
795
  return table.get_kerning (left, right, c);
794
796
  }
795
797
  };
@@ -878,15 +880,15 @@ struct KerxSubTable
878
880
  }
879
881
 
880
882
  template <typename set_t>
881
- void collect_glyphs (set_t &left_set, set_t &right_set, unsigned num_glyphs) const
883
+ void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
882
884
  {
883
885
  unsigned int subtable_type = get_type ();
884
886
  switch (subtable_type) {
885
- case 0: u.format0.collect_glyphs (left_set, right_set, num_glyphs); return;
886
- case 1: u.format1.collect_glyphs (left_set, right_set, num_glyphs); return;
887
- case 2: u.format2.collect_glyphs (left_set, right_set, num_glyphs); return;
888
- case 4: u.format4.collect_glyphs (left_set, right_set, num_glyphs); return;
889
- case 6: u.format6.collect_glyphs (left_set, right_set, num_glyphs); return;
887
+ case 0: u.format0.collect_glyphs (first_set, second_set, num_glyphs); return;
888
+ case 1: u.format1.collect_glyphs (first_set, second_set, num_glyphs); return;
889
+ case 2: u.format2.collect_glyphs (first_set, second_set, num_glyphs); return;
890
+ case 4: u.format4.collect_glyphs (first_set, second_set, num_glyphs); return;
891
+ case 6: u.format6.collect_glyphs (first_set, second_set, num_glyphs); return;
890
892
  default: return;
891
893
  }
892
894
  }
@@ -923,8 +925,8 @@ struct KerxSubTable
923
925
 
924
926
  struct kern_subtable_accelerator_data_t
925
927
  {
926
- hb_bit_set_t left_set;
927
- hb_bit_set_t right_set;
928
+ hb_bit_set_t first_set;
929
+ hb_bit_set_t second_set;
928
930
  mutable hb_aat_class_cache_t class_cache;
929
931
  };
930
932
 
@@ -1017,9 +1019,8 @@ struct KerxTable
1017
1019
  if (HB_DIRECTION_IS_HORIZONTAL (c->buffer->props.direction) != st->u.header.is_horizontal ())
1018
1020
  goto skip;
1019
1021
 
1020
- c->left_set = &subtable_accel.left_set;
1021
- c->right_set = &subtable_accel.right_set;
1022
- c->machine_glyph_set = &subtable_accel.left_set;
1022
+ c->first_set = &subtable_accel.first_set;
1023
+ c->second_set = &subtable_accel.second_set;
1023
1024
  c->machine_class_cache = &subtable_accel.class_cache;
1024
1025
 
1025
1026
  if (!c->buffer_intersects_machine ())
@@ -1051,8 +1052,8 @@ struct KerxTable
1051
1052
  }
1052
1053
  }
1053
1054
 
1054
- if (reverse)
1055
- c->buffer->reverse ();
1055
+ if (reverse != c->buffer_is_reversed)
1056
+ c->reverse_buffer ();
1056
1057
 
1057
1058
  {
1058
1059
  /* See comment in sanitize() for conditional here. */
@@ -1060,15 +1061,14 @@ struct KerxTable
1060
1061
  ret |= st->dispatch (c);
1061
1062
  }
1062
1063
 
1063
- if (reverse)
1064
- c->buffer->reverse ();
1065
-
1066
1064
  (void) c->buffer->message (c->font, "end subtable %u", c->lookup_index);
1067
1065
 
1068
1066
  skip:
1069
1067
  st = &StructAfter<SubTable> (*st);
1070
1068
  c->set_lookup_index (c->lookup_index + 1);
1071
1069
  }
1070
+ if (c->buffer_is_reversed)
1071
+ c->reverse_buffer ();
1072
1072
 
1073
1073
  return ret;
1074
1074
  }
@@ -1133,7 +1133,7 @@ struct KerxTable
1133
1133
  if (unlikely (accel_data.subtable_accels.in_error ()))
1134
1134
  return accel_data;
1135
1135
 
1136
- st->collect_glyphs (subtable_accel.left_set, subtable_accel.right_set, num_glyphs);
1136
+ st->collect_glyphs (subtable_accel.first_set, subtable_accel.second_set, num_glyphs);
1137
1137
  subtable_accel.class_cache.clear ();
1138
1138
 
1139
1139
  st = &StructAfter<SubTable> (*st);
@@ -1169,15 +1169,15 @@ struct Chain
1169
1169
  hb_map ([subtable_flags] (const hb_aat_map_t::range_flags_t _) -> bool { return subtable_flags & (_.flags); })))
1170
1170
  goto skip;
1171
1171
 
1172
- c->subtable_flags = subtable_flags;
1173
- c->machine_glyph_set = accel ? &accel->subtables[i].glyph_set : &Null(hb_bit_set_t);
1174
- c->machine_class_cache = accel ? &accel->subtables[i].class_cache : nullptr;
1175
-
1176
1172
  if (!(coverage & ChainSubtable<Types>::AllDirections) &&
1177
1173
  HB_DIRECTION_IS_VERTICAL (c->buffer->props.direction) !=
1178
1174
  bool (coverage & ChainSubtable<Types>::Vertical))
1179
1175
  goto skip;
1180
1176
 
1177
+ c->subtable_flags = subtable_flags;
1178
+ c->first_set = accel ? &accel->subtables[i].glyph_set : &Null(hb_bit_set_t);
1179
+ c->machine_class_cache = accel ? &accel->subtables[i].class_cache : nullptr;
1180
+
1181
1181
  if (!c->buffer_intersects_machine ())
1182
1182
  {
1183
1183
  (void) c->buffer->message (c->font, "skipped chainsubtable %u because no glyph matches", c->lookup_index);
@@ -1219,22 +1219,21 @@ struct Chain
1219
1219
  if (!c->buffer->message (c->font, "start chainsubtable %u", c->lookup_index))
1220
1220
  goto skip;
1221
1221
 
1222
- if (reverse)
1223
- c->buffer->reverse ();
1222
+ if (reverse != c->buffer_is_reversed)
1223
+ c->reverse_buffer ();
1224
1224
 
1225
1225
  subtable->apply (c);
1226
1226
 
1227
- if (reverse)
1228
- c->buffer->reverse ();
1229
-
1230
1227
  (void) c->buffer->message (c->font, "end chainsubtable %u", c->lookup_index);
1231
1228
 
1232
- if (unlikely (!c->buffer->successful)) return;
1229
+ if (unlikely (!c->buffer->successful)) break;
1233
1230
 
1234
1231
  skip:
1235
1232
  subtable = &StructAfter<ChainSubtable<Types>> (*subtable);
1236
1233
  c->set_lookup_index (c->lookup_index + 1);
1237
1234
  }
1235
+ if (c->buffer_is_reversed)
1236
+ c->reverse_buffer ();
1238
1237
  }
1239
1238
 
1240
1239
  unsigned int get_size () const { return length; }
@@ -525,7 +525,19 @@ hb_buffer_t::set_masks (hb_mask_t value,
525
525
  hb_mask_t not_mask = ~mask;
526
526
  value &= mask;
527
527
 
528
+ max_ops -= len;
529
+ if (unlikely (max_ops < 0))
530
+ successful = false;
531
+
528
532
  unsigned int count = len;
533
+
534
+ if (cluster_start == 0 && cluster_end == (unsigned int) -1)
535
+ {
536
+ for (unsigned int i = 0; i < count; i++)
537
+ info[i].mask = (info[i].mask & not_mask) | value;
538
+ return;
539
+ }
540
+
529
541
  for (unsigned int i = 0; i < count; i++)
530
542
  if (cluster_start <= info[i].cluster && info[i].cluster < cluster_end)
531
543
  info[i].mask = (info[i].mask & not_mask) | value;
@@ -541,6 +553,10 @@ hb_buffer_t::merge_clusters_impl (unsigned int start,
541
553
  return;
542
554
  }
543
555
 
556
+ max_ops -= end - start;
557
+ if (unlikely (max_ops < 0))
558
+ successful = false;
559
+
544
560
  unsigned int cluster = info[start].cluster;
545
561
 
546
562
  for (unsigned int i = start + 1; i < end; i++)
@@ -574,6 +590,10 @@ hb_buffer_t::merge_out_clusters (unsigned int start,
574
590
  if (unlikely (end - start < 2))
575
591
  return;
576
592
 
593
+ max_ops -= end - start;
594
+ if (unlikely (max_ops < 0))
595
+ successful = false;
596
+
577
597
  unsigned int cluster = out_info[start].cluster;
578
598
 
579
599
  for (unsigned int i = start + 1; i < end; i++)
@@ -403,20 +403,12 @@ struct hb_buffer_t
403
403
  /* Adds glyph flags in mask to infos with clusters between start and end.
404
404
  * The start index will be from out-buffer if from_out_buffer is true.
405
405
  * If interior is true, then the cluster having the minimum value is skipped. */
406
- void _set_glyph_flags (hb_mask_t mask,
407
- unsigned start = 0,
408
- unsigned end = (unsigned) -1,
409
- bool interior = false,
410
- bool from_out_buffer = false)
406
+ void _set_glyph_flags_impl (hb_mask_t mask,
407
+ unsigned start,
408
+ unsigned end,
409
+ bool interior,
410
+ bool from_out_buffer)
411
411
  {
412
- if (unlikely (end != (unsigned) -1 && end - start > 255))
413
- return;
414
-
415
- end = hb_min (end, len);
416
-
417
- if (interior && !from_out_buffer && end - start < 2)
418
- return;
419
-
420
412
  scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_GLYPH_FLAGS;
421
413
 
422
414
  if (!from_out_buffer || !have_output)
@@ -455,6 +447,25 @@ struct hb_buffer_t
455
447
  }
456
448
  }
457
449
 
450
+ HB_ALWAYS_INLINE
451
+ void _set_glyph_flags (hb_mask_t mask,
452
+ unsigned start = 0,
453
+ unsigned end = (unsigned) -1,
454
+ bool interior = false,
455
+ bool from_out_buffer = false)
456
+ {
457
+ if (unlikely (end != (unsigned) -1 && end - start > 255))
458
+ return;
459
+
460
+ end = hb_min (end, len);
461
+
462
+ if (interior && !from_out_buffer && end - start < 2)
463
+ return;
464
+
465
+ _set_glyph_flags_impl (mask, start, end, interior, from_out_buffer);
466
+ }
467
+
468
+
458
469
  void unsafe_to_break (unsigned int start = 0, unsigned int end = -1)
459
470
  {
460
471
  _set_glyph_flags (HB_GLYPH_FLAG_UNSAFE_TO_BREAK | HB_GLYPH_FLAG_UNSAFE_TO_CONCAT,
@@ -605,6 +616,10 @@ struct hb_buffer_t
605
616
  if (unlikely (start == end))
606
617
  return;
607
618
 
619
+ max_ops -= end - start;
620
+ if (unlikely (max_ops < 0))
621
+ successful = false;
622
+
608
623
  unsigned cluster_first = infos[start].cluster;
609
624
  unsigned cluster_last = infos[end - 1].cluster;
610
625
 
@@ -631,6 +631,9 @@ hb_script_get_horizontal_direction (hb_script_t script)
631
631
  /* Unicode-16.0 additions */
632
632
  case HB_SCRIPT_GARAY:
633
633
 
634
+ /* Unicode-17.0 additions */
635
+ case HB_SCRIPT_SIDETIC:
636
+
634
637
  return HB_DIRECTION_RTL;
635
638
 
636
639
 
@@ -70,7 +70,7 @@ struct hb_kern_machine_t
70
70
  continue;
71
71
  }
72
72
 
73
- skippy_iter.reset (idx);
73
+ skippy_iter.reset_fast (idx);
74
74
  unsigned unsafe_to;
75
75
  if (!skippy_iter.next (&unsafe_to))
76
76
  {
@@ -92,9 +92,10 @@ struct KernSubTableFormat3
92
92
  {
93
93
  set_t set;
94
94
  if (likely (glyphCount))
95
- set.add_range (0, glyphCount - 1);
96
- left_set.union_ (set);
97
- right_set.union_ (set);
95
+ {
96
+ left_set.add_range (0, num_glyphs - 1);
97
+ right_set.add_range (0, num_glyphs - 1);
98
+ }
98
99
  }
99
100
 
100
101
  protected: