summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2015-03-05 07:40:24 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2015-03-05 07:40:24 +0000
commita0e2953a62c9368a7172dc5c277edd4351d541bb (patch)
tree4b8f41c75cdd3f6c34fc3cec92260adfaa4d9fc4
parent0d23767cc46f7d5c96d9bdc17c98b56d0ce95ffa (diff)
harfbuzz 0.9.39
git-svn-id: svn://tug.org/texlive/trunk@36438 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/harfbuzz/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/Makefile.in4
-rwxr-xr-xBuild/source/libs/harfbuzz/configure32
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39-PATCHES/ChangeLog (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38-PATCHES/ChangeLog)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39-PATCHES/TL-Changes (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38-PATCHES/TL-Changes)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/AUTHORS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/AUTHORS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/Android.mk (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/Android.mk)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/ChangeLog (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/ChangeLog)1342
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/Makefile.am)1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/NEWS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/NEWS)10
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/README (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/README)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/README.python (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/README.python)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/THANKS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/THANKS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/TODO (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/TODO)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/autogen.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/autogen.sh)9
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/config.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/config.h.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/configure.ac (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/configure.ac)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/gtk-doc.make (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/gtk-doc.make)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/harfbuzz.doap (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/harfbuzz.doap)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/Makefile.am)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-c-linkage-decls.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-c-linkage-decls.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-defs.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-defs.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-header-guards.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-header-guards.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-includes.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-includes.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-libstdc++.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-libstdc++.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-static-inits.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-static-inits.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-symbols.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-symbols.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/gen-arabic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/gen-arabic-table.py)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.39/src/gen-indic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/gen-indic-table.py)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz-gobject.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz-gobject.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz-icu.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz-icu.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-atomic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-atomic-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-blob.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-blob.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-blob.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-blob.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-json.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-json.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-json.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-json.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-text.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-text.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-text.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-text.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-serialize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-serialize.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer.cc)38
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer.h)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-cache-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-cache-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-common.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-common.cc)1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-common.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-common.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-coretext.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-coretext.cc)37
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-coretext.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-coretext.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-deprecated.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-deprecated.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-fallback-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-fallback-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ft.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ft.cc)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ft.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ft.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-glib.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-glib.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-glib.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-glib.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-enums.cc.tmpl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-enums.cc.tmpl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-enums.h.tmpl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-enums.h.tmpl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-structs.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-structs.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-structs.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-structs.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-graphite2.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-graphite2.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-graphite2.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-graphite2.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-icu.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-icu.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-icu.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-icu.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-mutex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-mutex-private.hh)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-object-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-object-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-open-file-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-open-file-private.hh)15
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-open-type-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-open-type-private.hh)96
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-cmap-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-cmap-table.hh)35
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-font.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-font.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-head-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-head-table.hh)6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-hhea-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-hhea-table.hh)3
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-hmtx-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-hmtx-table.hh)3
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-common-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-common-private.hh)97
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gdef-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gdef-table.hh)30
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gpos-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gpos-table.hh)246
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gsub-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gsub-table.hh)171
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gsubgpos-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gsubgpos-private.hh)380
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-jstf-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-jstf-table.hh)12
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-private.hh)5
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout.cc)105
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-map-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-map-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-map.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-map.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-maxp-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-maxp-table.hh)6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-name-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-name-table.hh)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-fallback.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-fallback.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-win1256.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-win1256.hh)1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-default.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-default.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-hangul.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-hangul.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-hebrew.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-hebrew.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-table.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-table.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-thai.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-thai.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-tibetan.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-tibetan.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-fallback-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-fallback-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-fallback.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-fallback.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-normalize-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-normalize-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-normalize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-normalize.cc)9
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-tag.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-tag.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-tag.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-tag.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-private.hh)82
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set-private.hh)57
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-impl-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-impl-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-list.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-list.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-private.hh)7
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ucdn.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ucdn.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-uniscribe.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-uniscribe.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-uniscribe.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-uniscribe.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-utf-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-utf-private.hh)57
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-version.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-version.h.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-warning.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-warning.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/main.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/main.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-buffer-serialize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-buffer-serialize.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-size-params.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-size-params.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-would-substitute.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-would-substitute.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test.cc)0
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
153 files changed, 1912 insertions, 1032 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index c7693f1cae1..364f72fc504 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -24,7 +24,7 @@ gmp 6.0.0 - checked 25mar14
graphite2 1.2.4 - checked 2dec13
http://sourceforge.net/projects/silgraphite/files/graphite2/
-harfbuzz 0.9.38 - checked 26jan15
+harfbuzz 0.9.39 - checked 5mar15
http://www.freedesktop.org/software/harfbuzz/release/
icu 54.1 (release) - checked 2oct14
diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog
index ce16ee9ea59..d676064c1be 100644
--- a/Build/source/libs/harfbuzz/ChangeLog
+++ b/Build/source/libs/harfbuzz/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import harfbuzz-0.9.39.
+ * version.ac: Adjust.
+
2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
* Makefile.am: Use the fragment ../../am/dist_hook.am.
diff --git a/Build/source/libs/harfbuzz/Makefile.in b/Build/source/libs/harfbuzz/Makefile.in
index cad28b6c1bf..6fb80d2b26d 100644
--- a/Build/source/libs/harfbuzz/Makefile.in
+++ b/Build/source/libs/harfbuzz/Makefile.in
@@ -462,7 +462,7 @@ am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
$(top_srcdir)/../../build-aux/install-sh \
$(top_srcdir)/../../build-aux/missing \
$(top_srcdir)/../../build-aux/test-driver \
- $(top_srcdir)/harfbuzz-0.9.38/src/hb-version.h.in \
+ $(top_srcdir)/harfbuzz-0.9.39/src/hb-version.h.in \
../../build-aux/compile ../../build-aux/config.guess \
../../build-aux/config.sub ../../build-aux/depcomp \
../../build-aux/install-sh ../../build-aux/ltmain.sh \
@@ -794,7 +794,7 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
distclean-hdr:
-rm -f config.h stamp-h1
-hb-version.h: $(top_builddir)/config.status $(top_srcdir)/harfbuzz-0.9.38/src/hb-version.h.in
+hb-version.h: $(top_builddir)/config.status $(top_srcdir)/harfbuzz-0.9.39/src/hb-version.h.in
cd $(top_builddir) && $(SHELL) ./config.status $@
clean-noinstLIBRARIES:
diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure
index 2c5ea8d869e..e8ed7a662ad 100755
--- a/Build/source/libs/harfbuzz/configure
+++ b/Build/source/libs/harfbuzz/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 0.9.38.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 0.9.39.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,12 +580,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='0.9.38'
-PACKAGE_STRING='harfbuzz (TeX Live) 0.9.38'
+PACKAGE_VERSION='0.9.39'
+PACKAGE_STRING='harfbuzz (TeX Live) 0.9.39'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="harfbuzz-0.9.38/src/harfbuzz.pc.in"
+ac_unique_file="harfbuzz-0.9.39/src/harfbuzz.pc.in"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -1325,7 +1325,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures harfbuzz (TeX Live) 0.9.38 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 0.9.39 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1396,7 +1396,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz (TeX Live) 0.9.38:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 0.9.39:";;
esac
cat <<\_ACEOF
@@ -1509,7 +1509,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz (TeX Live) configure 0.9.38
+harfbuzz (TeX Live) configure 0.9.39
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2099,7 +2099,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by harfbuzz (TeX Live) $as_me 0.9.38, which was
+It was created by harfbuzz (TeX Live) $as_me 0.9.39, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4022,7 +4022,7 @@ fi
# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
- VERSION='0.9.38'
+ VERSION='0.9.39'
cat >>confdefs.h <<_ACEOF
@@ -4225,8 +4225,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags
HB_VERSION_MAJOR=0
HB_VERSION_MINOR=9
-HB_VERSION_MICRO=38
-HB_VERSION=0.9.38
+HB_VERSION_MICRO=39
+HB_VERSION=0.9.39
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -6642,14 +6642,14 @@ $as_echo "#define HAVE_INTEL_ATOMIC_PRIMITIVES 1" >>confdefs.h
fi
-HARFBUZZ_TREE=harfbuzz-0.9.38
+HARFBUZZ_TREE=harfbuzz-0.9.39
if test -f $srcdir/$HARFBUZZ_TREE/src/hb-version.h; then
as_fn_error $? "Sorry, you must remove the file $HARFBUZZ_TREE/src/hb-version.h" "$LINENO" 5
fi
-ac_config_files="$ac_config_files Makefile include/Makefile hb-version.h:harfbuzz-0.9.38/src/hb-version.h.in"
+ac_config_files="$ac_config_files Makefile include/Makefile hb-version.h:harfbuzz-0.9.39/src/hb-version.h.in"
cat >confcache <<\_ACEOF
@@ -7198,7 +7198,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by harfbuzz (TeX Live) $as_me 0.9.38, which was
+This file was extended by harfbuzz (TeX Live) $as_me 0.9.39, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7264,7 +7264,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-harfbuzz (TeX Live) config.status 0.9.38
+harfbuzz (TeX Live) config.status 0.9.39
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -7397,7 +7397,7 @@ do
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
- "hb-version.h") CONFIG_FILES="$CONFIG_FILES hb-version.h:harfbuzz-0.9.38/src/hb-version.h.in" ;;
+ "hb-version.h") CONFIG_FILES="$CONFIG_FILES hb-version.h:harfbuzz-0.9.39/src/hb-version.h.in" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38-PATCHES/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-0.9.39-PATCHES/ChangeLog
index 62fff4f77ce..62fff4f77ce 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38-PATCHES/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39-PATCHES/ChangeLog
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38-PATCHES/TL-Changes b/Build/source/libs/harfbuzz/harfbuzz-0.9.39-PATCHES/TL-Changes
index de06d232879..3b9b4d7cbc8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38-PATCHES/TL-Changes
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39-PATCHES/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-0.9.38/ tree as obtained from:
+Changes applied to the harfbuzz-0.9.39/ tree as obtained from:
http://www.freedesktop.org/software/harfbuzz/release/
Removed:
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/AUTHORS b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/AUTHORS
index 81cdc4cf37f..81cdc4cf37f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/AUTHORS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/AUTHORS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/Android.mk b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/Android.mk
index 05525078516..05525078516 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/Android.mk
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/Android.mk
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/ChangeLog
index f56dd06baea..4a6a594c481 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/ChangeLog
@@ -1,6 +1,728 @@
+commit 98e3ea8e34c798ce003e946c9a150bb41be9d09b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Mar 4 12:03:39 2015 -0800
+
+ Fix hb-uniscribe build
+
+ src/hb-ot-name-table.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8ac345e5c0ed0aad6547592ea0839aabfb4ba980
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Mar 2 16:06:55 2015 -0800
+
+ Fix reverse_range() to only reverse alt array if positions are used
+
+ In hb-coretext, when we were using scratch buffer for book-keeping,
+ a reverse_range() caused by the notdef-insertion loop could mess up
+ our log_clusters. Ouch!
+
+ src/hb-buffer.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1e03d7ac83f3e17aafed1e37390d9ff8394e36da
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 26 13:58:32 2015 -0800
+
+ Better error message if libtool is not installed
+
+ Fixes https://github.com/behdad/harfbuzz/pull/88
+
+ autogen.sh | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit 6c918e2997fb82e89485f2b50bee2bf4fcd70592
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 26 13:55:34 2015 -0800
+
+ Clean up gtk-doc.make
+
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 5ec5875acb12cf07447c9ebfb03212601368dfc4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 26 13:53:05 2015 -0800
+
+ Install git.mk in docs/
+
+ docs/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit d146678d103425b3da7ef393bc6d66f6ba4c5593
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 26 13:52:50 2015 -0800
+
+ Update git.mk from upstream
+
+ git.mk | 35 ++++++++++++++++++++++++++++-------
+ 1 file changed, 28 insertions(+), 7 deletions(-)
+
+commit 5f541f8f7be82f29b77b481827deb212e12d53e4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 16:51:17 2015 +0300
+
+ Minor refactoring
+
+ src/hb-private.hh | 44 ++++++++++++++++++++++++++++----------------
+ 1 file changed, 28 insertions(+), 16 deletions(-)
+
+commit ef79bdf73bbfde1bfaa222834809d105ab7755b3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 16:49:15 2015 +0300
+
+ Minor
+
+ src/hb-ot-layout-common-private.hh | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 68e04afbb1e1073c47474f7a4d6d2cacf7057f6f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 16:30:28 2015 +0300
+
+ Typo
+
+ src/hb-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 55553699b38d6481fbfacd0a32fc266e55553b34
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 16:29:08 2015 +0300
+
+ Minor
+
+ src/hb-private.hh | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 5175300fbaf4ff19b7d38c14c86331bb614b0390
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 12:50:01 2015 +0300
+
+ [layout] Fix comparison of GlyphID and hb_codepoint_t
+
+ Before, the IntType::cmp functions providing this and was truncating
+ the hb_codepoint_t to 16bits before comparison. I have no idea how
+ this was never discovered, and I'm too lazy to try to reproduce this
+ with Pango (which uses non-16bit codepoint numbers for missing
+ glyphs).
+
+ src/hb-open-type-private.hh | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 7cce809cb11e0ce65dbdab899779ece3dc337763
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 12:41:08 2015 +0300
+
+ Remove unused (and wrong as of a few commits ago) cmp() function
+
+ src/hb-open-type-private.hh | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 8e3d4bae033bdec649676da26cfc3eb7610832a8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 12:31:59 2015 +0300
+
+ Minor
+
+ src/hb-ot-layout-common-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f47cf1f12dd1fa3cd3aa84502139caca9d469af8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Feb 21 11:45:22 2015 +0300
+
+ Minor
+
+ src/hb-ot-layout.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 640b66c6348653bfd7cf88ea9caa2133c0eb949f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 17:30:05 2015 +0300
+
+ [layout] If lookup has only one subtable, move the forward loop down
+ to subtable
+
+ I was hoping to see a nice speedup, but it resulted in a very
+ minor one.
+
+ src/hb-ot-layout.cc | 33 ++++++++++++++++++++++++++++++++-
+ 1 file changed, 32 insertions(+), 1 deletion(-)
+
+commit e2f50f2a7ebf9882ea89dc3f0c740e7fce964e37
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 17:15:05 2015 +0300
+
+ [layout] Add apply_forward / apply_backward
+
+ src/hb-ot-layout.cc | 69
+ +++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 46 insertions(+), 23 deletions(-)
+
+commit 1d4a328472f094c0d75a062f6e176c6b1875cfdc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 11:33:30 2015 +0300
+
+ [layout] Remove unneeded return value from apply()
+
+ src/hb-ot-layout.cc | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+commit bbdd6fd21cc2e079defff7cb17c3eb8eff3f9e09
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 17:03:02 2015 +0300
+
+ Minor simpilfy BEInt
+
+ src/hb-open-type-private.hh | 25 ++-----------------------
+ 1 file changed, 2 insertions(+), 23 deletions(-)
+
+commit 88a399acdc0fcb060803da0e7db56de2866981e3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 16:57:12 2015 +0300
+
+ Optimize IntType comparison to avoid branches for 16bit numbers
+
+ src/hb-open-type-private.hh | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+commit 37de2d533126245774417234e3536fcfb24f3a6b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 16:55:51 2015 +0300
+
+ Minor simplify IntType
+
+ src/hb-open-type-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit bd047d3b7f04d551c0a26bc0ce9b9d61481e34e1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 10:47:18 2015 +0300
+
+ [layout] Minor
+
+ src/hb-ot-layout-gpos-table.hh | 6 ++++++
+ src/hb-ot-layout-gsub-table.hh | 6 ++++++
+ src/hb-ot-layout.cc | 4 ++--
+ 3 files changed, 14 insertions(+), 2 deletions(-)
+
+commit b9d3f60520c022dc952e65a66eb138d1f7cae2e1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 10:42:41 2015 +0300
+
+ [layout] Minor
+
+ src/hb-ot-layout.cc | 15 ++++-----------
+ 1 file changed, 4 insertions(+), 11 deletions(-)
+
+commit 1a2322134a5d7bba990da28baf893b35879a5a7a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 10:40:23 2015 +0300
+
+ [layout] Don't check glyph props against lookup flags when recursing
+
+ Shouldn't be needed. I have a hard time imagining this breaking any
+ legitimate use case.
+
+ src/hb-ot-layout-gpos-table.hh | 10 +---------
+ src/hb-ot-layout-gsub-table.hh | 10 +---------
+ 2 files changed, 2 insertions(+), 18 deletions(-)
+
+commit 095a1257cc3cc56b044b4cd842a92f0d0f933a50
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Feb 19 10:29:41 2015 +0300
+
+ [layout] Port sanitize() to use dispatch()
+
+ Needed some rework of Extension table. Hopefully I got it right, and
+ the new template usage doesn't break any compilers...
+
+ src/hb-open-type-private.hh | 5 ++-
+ src/hb-ot-layout-gpos-table.hh | 82
+ +----------------------------------
+ src/hb-ot-layout-gsub-table.hh | 72 ++-----------------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 84
+ ++++++++++++------------------------
+ 4 files changed, 37 insertions(+), 206 deletions(-)
+
+commit 758fb20630f84c3d373cda37974b88f16c02995e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Feb 18 13:45:03 2015 +0300
+
+ Remove unused macro
+
+ src/hb-ot-shape-complex-arabic-win1256.hh | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 40c58923cbf689c465f9b65334c455a9b7f71ab0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Feb 18 13:18:46 2015 +0300
+
+ [layout] Refactor Lookup::dispatch()
+
+ src/hb-ot-layout-common-private.hh | 20 ++++++++++++++++++++
+ src/hb-ot-layout-gpos-table.hh | 12 +-----------
+ src/hb-ot-layout-gsub-table.hh | 12 +-----------
+ src/hb-ot-layout-gsubgpos-private.hh | 6 ------
+ 4 files changed, 22 insertions(+), 28 deletions(-)
+
+commit 70366f5d19df2e654f0933474fecf1aa16e27812
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Feb 18 13:09:54 2015 +0300
+
+ [layout] Refactor get_subtable()
+
+ src/hb-ot-layout-common-private.hh | 12 ++++++++++++
+ src/hb-ot-layout-gpos-table.hh | 4 ++--
+ src/hb-ot-layout-gsub-table.hh | 6 +++---
+ 3 files changed, 17 insertions(+), 5 deletions(-)
+
+commit f72f326aea6d1e93f63040730f7aecd401676c1c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Feb 17 19:18:07 2015 +0300
+
+ Minor
+
+ src/hb-ot-layout-gpos-table.hh | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 8e36ccfd4f076888076ca176c055c18104af03b6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Feb 17 19:15:34 2015 +0300
+
+ [layout] Use dispatch() for add_coverage()
+
+ src/hb-ot-layout-gpos-table.hh | 12 ++----------
+ src/hb-ot-layout-gsub-table.hh | 12 ++----------
+ src/hb-ot-layout-gsubgpos-private.hh | 12 ++++++++++--
+ 3 files changed, 14 insertions(+), 22 deletions(-)
+
+commit 50b8dc79daffc7ef671dd5eedfea47f8d5e946f4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Feb 17 18:14:17 2015 +0300
+
+ [layout] Add may_dispatch()
+
+ No functional change right now.
+
+ src/hb-ot-layout-gpos-table.hh | 7 +++++++
+ src/hb-ot-layout-gsub-table.hh | 6 ++++++
+ src/hb-ot-layout-gsubgpos-private.hh | 12 ++++++++++++
+ 3 files changed, 25 insertions(+)
+
+commit de2118ed7a998a1df9b28fd1be96b4af89ed82c3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Feb 17 17:27:44 2015 +0300
+
+ Make sanitize() a const method
+
+ This makes a lot of code safer. We only try modifying the object
+ in one
+ place, after making sure it's safe to do so. So, do a const_cast<> in
+ that one place...
+
+ src/hb-open-file-private.hh | 15 +++--
+ src/hb-open-type-private.hh | 51 +++++++++++------
+ src/hb-ot-cmap-table.hh | 35 ++++++++----
+ src/hb-ot-head-table.hh | 6 +-
+ src/hb-ot-hhea-table.hh | 3 +-
+ src/hb-ot-hmtx-table.hh | 3 +-
+ src/hb-ot-layout-common-private.hh | 58 ++++++++++++-------
+ src/hb-ot-layout-gdef-table.hh | 30 ++++++----
+ src/hb-ot-layout-gpos-table.hh | 108
+ +++++++++++++++++++++++------------
+ src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++-------
+ src/hb-ot-layout-gsubgpos-private.hh | 65 +++++++++++++--------
+ src/hb-ot-layout-jstf-table.hh | 12 ++--
+ src/hb-ot-maxp-table.hh | 6 +-
+ src/hb-ot-name-table.hh | 6 +-
+ 14 files changed, 296 insertions(+), 160 deletions(-)
+
+commit 6759ed95a3bec2874826376b68ebff19ba277ef2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Feb 17 16:05:30 2015 +0300
+
+ Minor
+
+ src/hb-ot-layout-gpos-table.hh | 6 ++----
+ src/hb-ot-layout-gsub-table.hh | 6 ++----
+ 2 files changed, 4 insertions(+), 8 deletions(-)
+
+commit 6b599dac1f814a3c900300241d4c492a8f8b66d2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Feb 17 16:04:07 2015 +0300
+
+ Remove unnecessary check in sanitize
+
+ src/hb-ot-layout-gpos-table.hh | 2 --
+ src/hb-ot-layout-gsub-table.hh | 2 --
+ 2 files changed, 4 deletions(-)
+
+commit 365576d246949f9d587e90cf0539dc0381e4d0a3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 13:59:42 2015 +0100
+
+ [layout] Allocate iters in the context
+
+ Can be further optimized, but I think I didn't break anything.
+
+ Saves another 3% off Roboto shaping.
+
+ src/hb-ot-layout-gpos-table.hh | 18 ++++++------------
+ src/hb-ot-layout-gsubgpos-private.hh | 21 +++++++++++++--------
+ src/hb-ot-shape-fallback.cc | 2 +-
+ 3 files changed, 20 insertions(+), 21 deletions(-)
+
+commit 514564f5444b8ad2f210b1e3d7d66378f7275317
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 13:48:48 2015 +0100
+
+ [layout] Move skippy_iter setup from constructor into init()
+
+ src/hb-ot-layout-gpos-table.hh | 18 ++++++++++++------
+ src/hb-ot-layout-gsubgpos-private.hh | 28 +++++++++++++++-------------
+ src/hb-ot-shape-fallback.cc | 3 ++-
+ 3 files changed, 29 insertions(+), 20 deletions(-)
+
+commit b051be542a8945ec14b0192bbc285f3e1a78c8f1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 13:40:39 2015 +0100
+
+ [lookup] Add skippy_iter.reset()
+
+ Towards reducing the cost of initializing skippy_iter()
+
+ src/hb-ot-layout-gpos-table.hh | 18 ++++++++++++------
+ src/hb-ot-layout-gsubgpos-private.hh | 27 ++++++++++++++++++---------
+ src/hb-ot-shape-fallback.cc | 3 ++-
+ 3 files changed, 32 insertions(+), 16 deletions(-)
+
+commit 2cecc38c7cf49b2cf697efa7e974ceee7055f2c5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 13:32:05 2015 +0100
+
+ [layout] Shuffle code around
+
+ src/hb-ot-layout-gsubgpos-private.hh | 111
+ ++++++++++++++++++-----------------
+ 1 file changed, 56 insertions(+), 55 deletions(-)
+
+commit 696266981df5ef6c62ad0115133dad1d6c1d9acc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 13:08:41 2015 +0100
+
+ [layout] Merge forward and backward iterators
+
+ src/hb-ot-layout-gpos-table.hh | 12 +++---
+ src/hb-ot-layout-gsubgpos-private.hh | 71
+ ++++++++----------------------------
+ src/hb-ot-shape-fallback.cc | 2 +-
+ 3 files changed, 23 insertions(+), 62 deletions(-)
+
+commit 1f038eec3c0dd6331036f795614fe1ddcbf613b0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 13:05:25 2015 +0100
+
+ [layout] Fix backward reject()
+
+ Has no functional effect since reject was never used with
+ match_glyph_data.
+
+ src/hb-ot-layout-gsubgpos-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 37d13acd8d414a4b53fac0152addfadecf755cd4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 11:38:01 2015 +0100
+
+ [layout] Remove some unnecessary checks in skippy
+
+ src/hb-ot-layout-gpos-table.hh | 3 ---
+ src/hb-ot-layout-gsubgpos-private.hh | 9 ++-------
+ 2 files changed, 2 insertions(+), 10 deletions(-)
+
+commit baa14e18148d3f5493f78b4fe9e0c835a01f50f7
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 29 11:08:43 2015 +0100
+
+ [lookup] Don't initialize skippy if coverage match fails
+
+ Currently:
+
+ - Initializing skippy is very expensive,
+
+ - Our lookup accelerator (using set-digests) can be very ineffecite,
+
+ As such, we end up many times initializing skippy but then failing
+ coverage check. Reordering fixes that.
+
+ When, later, we fix our accelerator to have truly small false-positive
+ rate (for example by using the frozen-sets), then we might want to
+ reorder these checks such that we wouldn't calculate coverage number
+ if skippy is going to fail.
+
+ This shows a 5% speedup with Roboto already.
+
+ src/hb-ot-layout-gpos-table.hh | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+commit 7788993bc19bf122f1e143ab64cc1da2ed1865a3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 23:01:12 2015 -0800
+
+ [layout] Use setter method to set c->lookup_props
+
+ src/hb-ot-layout-gpos-table.hh | 2 +-
+ src/hb-ot-layout-gsub-table.hh | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit f4ee48fd7b312550faf9b0be4cd1b2f2849dd08d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 22:53:54 2015 -0800
+
+ [layout] Remove unused wrapper method
+
+ src/hb-ot-layout-gsubgpos-private.hh | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 7b7129c7a997def599fb4d2ba05fda40d27aed20
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 21:46:07 2015 -0800
+
+ Add hb_frozen_set_t
+
+ I experimented with replacing use of hb_set_digest_t with this new
+ hb_frozen_set_t, hoping to get a huge speedup for busy lookups
+ (like kern lookup in Roboto), but I only got 6% speendup in Roboto
+ and 4% in NotoNastaliqUrduDraft :(.
+
+ src/hb-set-private.hh | 57
+ ++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 56 insertions(+), 1 deletion(-)
+
+commit 241eac9559465fa79f396570af4e87f455b7e9d5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 20:55:42 2015 -0800
+
+ Hide internals of lookup accelerators
+
+ src/hb-ot-layout-gsub-table.hh | 5 +++--
+ src/hb-ot-layout-private.hh | 5 +++++
+ src/hb-ot-layout.cc | 6 +++---
+ 3 files changed, 11 insertions(+), 5 deletions(-)
+
+commit e2d4e8480d85436a3acad8145acac345ed593f5a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 20:29:48 2015 -0800
+
+ [util] Add convenience "make lib" target
+
+ util/Makefile.am | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit faaae64bf28abdcdd15185374bc09a3809794118
+Merge: 7888a6b 9768e65
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Feb 25 15:34:34 2015 -0800
+
+ Merge pull request #85 from KonstantinRitt/define_inline
+
+ Fix build with MSVC on CE
+
+commit 9768e651be0561f07d6f38c3ed8bc5ee04882990
+Author: Konstantin Ritt <ritt.ks@gmail.com>
+Date: Sat Feb 14 00:58:51 2015 +0400
+
+ Fix build with MSVC on CE
+
+ This code is C++ only. There isn't a single C++ compiler that fails to
+ understand the "inline" keyword, since it's required by C++98. Any
+ compiler older than C++98 is likely to choke on the template usage
+ further down, so this isn't necessary.
+
+ Moreover, the C++ standard says you cannot define macros.
+ [lib.macro.names] says "Nor shall such a translation unit define
+ macros
+ for names lexically identical to keywords." -- technically, it's a
+ promise that the Standard Library headers won't do it, the wording
+ means
+ that the entire translation unit won't do it, which implies no source
+ can do it.
+
+ MSVC complains about it:
+ fatal error C1189: #error : The C++ Standard Library forbids
+ macroizing
+ keywords. Enable warning C4005 to find the forbidden macro.
+
+ Author: Thiago Macieira <thiago.macieira@intel.com>
+
+ src/hb-private.hh | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+commit 7888a6b07a9922cedd3e0d235959058e0011357b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 12:40:40 2015 -0800
+
+ [ft] Handle negative scales with vertical writing
+
+ src/hb-ft.cc | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 982d94eaa2a377616f22f39427e5ed9f1ce43263
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 10:51:33 2015 -0800
+
+ [coretext] Don't generate notdef glyph for default-ignorables
+
+ As discovered on Chrome Mac:
+ https://code.google.com/p/chromium/issues/detail?id=452326
+
+ src/hb-coretext.cc | 2 ++
+ src/hb-ot-shape.cc | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+commit 6917a045fd8d16952cad75fda8b291b11e1d3564
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 28 10:43:32 2015 -0800
+
+ [coretext] Unbreak glyph positioning in presence of notdef runs
+
+ As discovered on Chrome Mac:
+ https://code.google.com/p/chromium/issues/detail?id=452326
+
+ This was originally broken in:
+
+ commit 5a0eed3b50629be4826e4e9428f2c3255195395d
+ Author: Behdad Esfahbod <behdad@behdad.org>
+ Date: Mon Aug 11 23:47:16 2014 -0400
+
+ [coretext] Implement vertical shaping
+
+ src/hb-coretext.cc | 35 +++++++++++++++++++++++++++--------
+ 1 file changed, 27 insertions(+), 8 deletions(-)
+
+commit 1eff4350239b0768e1042b52db9fb1c0d266f96a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jan 27 12:26:04 2015 -0800
+
+ Minor optimization
+
+ src/hb-ot-shape-normalize.cc | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+commit 675956aca01fc4e005a338af43d1c1f4f938abd1
+Author: Konstantin Ritt <ritt.ks@gmail.com>
+Date: Tue Jan 27 11:23:07 2015 +0400
+
+ Do not leak hb_language_t on hb_language_item_t destruction
+
+ src/hb-common.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit b306f9674a599da50754d24fa5aefcb6bba04420
+Author: Konstantin Ritt <ritt.ks@gmail.com>
+Date: Tue Jan 27 20:08:41 2015 +0400
+
+ Minor improvement to HB_SHAPER_DATA_DESTROY
+
+ src/hb-shaper-private.hh | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+commit 61820bc4ca1f02433db4be7c81f27cf97e2bd519
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jan 26 14:25:52 2015 -0800
+
+ [API] Add hb_buffer_add_latin1()
+
+ This is by no ways to promote non-Unicode encodings. This is an entry
+ point that takes Unicode codepoints that happen to all be the first
+ 256 characters and hence fit in 8bit strings. This is useful eg
+ in Chrome
+ where strings that can fit in 8bit are implemented that way, and this
+ avoids copying into UTF-8 or UTF-16.
+
+ Perhaps we should rename this to hb_buffer_add_codepoints8().
+ I'm also
+ curious if anyone would be really interested in
+ hb_buffer_add_codepoints16().
+
+ Please discuss!
+
+ src/hb-buffer.cc | 36 +++++++++++++++++++++++++-------
+ src/hb-buffer.h | 8 ++++++++
+ src/hb-utf-private.hh | 57
+ ++++++++++++++++++++++++++++++++++++++-------------
+ 3 files changed, 80 insertions(+), 21 deletions(-)
+
+commit 78c6e86c04f12154c88b9f9264d0bd50b721699b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jan 26 14:08:36 2015 -0800
+
+ Fix hb_buffer_add_codepoints to actually NOT validate
+
+ src/hb-buffer.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 70c25ee215635db23eb0757641bd372940c0d85d
+Merge: 28f5e0b f3537b6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Jan 25 13:06:03 2015 -0800
+
+ Merge pull request #81 from KonstantinRitt/fixes/build/win8phone
+
+ winrt_buildfixes
+
+commit f3537b620b0a7392ea27f01f465c5ba79459c858
+Author: Konstantin Ritt <ritt.ks@gmail.com>
+Date: Sun Jan 25 09:50:51 2015 +0400
+
+ Move some code around
+
+ Just to keep Windows specific workarounds in a single place.
+
+ src/hb-private.hh | 25 ++++++++++++-------------
+ 1 file changed, 12 insertions(+), 13 deletions(-)
+
+commit afb62d88d78cacb6b881aaf329a654fd32f5ae29
+Author: Konstantin Ritt <ritt.ks@gmail.com>
+Date: Sun Jan 25 08:16:26 2015 +0400
+
+ Do not define MemoryBarrier on WinCE
+
+ There is a _HBMemoryBarrier() wrapper function that emulates
+ MemoryBarrier() behavior when it is not defined.
+
+ src/hb-private.hh | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 7db326a15b173c0d101adc608bf551a628c65dcd
+Author: Konstantin Ritt <ritt.ks@gmail.com>
+Date: Sun Jan 25 08:13:24 2015 +0400
+
+ Fix build on WinRT
+
+ There is no environment (like WinCE) and the basic version
+ of InitializeCriticalSection is unsupported.
+
+ https://codereview.qt-project.org/#/c/92496/
+
+ src/hb-mutex-private.hh | 4 ++++
+ src/hb-private.hh | 2 ++
+ 2 files changed, 6 insertions(+)
+
+commit 28f5e0b2f41670617bd778660364bbd58b1b68f2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jan 23 12:45:35 2015 -0800
+
+ 0.9.38
+
+ NEWS | 23 +++++++++++++++++++++++
+ configure.ac | 2 +-
+ 2 files changed, 24 insertions(+), 1 deletion(-)
+
commit a319d0777b746a2bbe5cd5a206172f1580da3379
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jan 23 12:44:24 2015 -0800
+Date: Fri Jan 23 12:44:24 2015 -0800
[ft] Handle negative x_scale / y_scale
@@ -9,7 +731,7 @@ Date: Fri Jan 23 12:44:24 2015 -0800
commit b0b38bb892473d9a65e06dd3b4713da39f92bef9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 21 19:19:33 2015 -0800
+Date: Wed Jan 21 19:19:33 2015 -0800
[coretext] Fix positioning of notdef
@@ -18,7 +740,7 @@ Date: Wed Jan 21 19:19:33 2015 -0800
commit 70622e5089c01ea16fd9deed11cb39d43145c121
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 21 18:50:57 2015 -0800
+Date: Wed Jan 21 18:50:57 2015 -0800
[coretext] Fix scaling
@@ -31,7 +753,7 @@ Date: Wed Jan 21 18:50:57 2015 -0800
commit 221ba02b0816584a02471037edae7cec9c1b8acc
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 21 16:42:09 2015 -0800
+Date: Wed Jan 21 16:42:09 2015 -0800
[coretext] Use vertical advance for notdef in vertical direction
@@ -40,7 +762,7 @@ Date: Wed Jan 21 16:42:09 2015 -0800
commit 7988da24c507ee310772f72cc5bcfd3c0a1187a0
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 21 18:33:50 2015 -0800
+Date: Wed Jan 21 18:33:50 2015 -0800
Add convenience make target "make lib" in src/
@@ -49,7 +771,7 @@ Date: Wed Jan 21 18:33:50 2015 -0800
commit 31d48dd919e3b4a0bec5ede384f76db9b44f4d71
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 21 01:57:44 2015 -0800
+Date: Wed Jan 21 01:57:44 2015 -0800
Add README.python
@@ -58,7 +780,7 @@ Date: Wed Jan 21 01:57:44 2015 -0800
commit ca1c2813dd0b082a8c418bd3edd3f6cba97bd5f0
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 21 01:51:48 2015 -0800
+Date: Wed Jan 21 01:51:48 2015 -0800
[bindings] Add README.python
@@ -67,29 +789,29 @@ Date: Wed Jan 21 01:51:48 2015 -0800
commit cd4eb96abb90a84b42e9b288e39bad759e4411a0
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 20 12:30:45 2015 -0800
+Date: Tue Jan 20 12:30:45 2015 -0800
[util] Add --font-size to hb-shape
Also makes hb-view to use 8 bits of subpixel precision and shape at
requested size, instead of always shaping at upem and scaling results.
- util/hb-ot-shape-closure.cc | 2 +-
- util/hb-shape.cc | 2 +-
- util/hb-view.cc | 5 ++++-
- util/helper-cairo.cc | 16 ++++++++--------
- util/helper-cairo.hh | 5 ++---
- util/main-font-text.hh | 4 ++--
- util/options.cc | 44
+ util/hb-ot-shape-closure.cc | 2 +-
+ util/hb-shape.cc | 2 +-
+ util/hb-view.cc | 5 ++++-
+ util/helper-cairo.cc | 16 ++++++++--------
+ util/helper-cairo.hh | 5 ++---
+ util/main-font-text.hh | 4 ++--
+ util/options.cc | 44
+++++++++++++++++++++++++++++++++++++++++---
- util/options.hh | 16 ++++++++++++----
- util/view-cairo.cc | 2 +-
- util/view-cairo.hh | 8 ++++----
+ util/options.hh | 16 ++++++++++++----
+ util/view-cairo.cc | 2 +-
+ util/view-cairo.hh | 8 ++++----
10 files changed, 76 insertions(+), 28 deletions(-)
commit 5789ca69d7464bab5fa0c5bdf404f3afaa490faf
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jan 9 14:22:01 2015 -0800
+Date: Fri Jan 9 14:22:01 2015 -0800
[util] Minor
@@ -98,7 +820,7 @@ Date: Fri Jan 9 14:22:01 2015 -0800
commit 67dfa8c7c2f2e9040a9c60c680f739ada4a35fb5
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jan 19 17:00:31 2015 -0800
+Date: Mon Jan 19 17:00:31 2015 -0800
When matching second glyph of kerning pairs, use bsearch
@@ -113,7 +835,7 @@ Date: Mon Jan 19 17:00:31 2015 -0800
commit e9f5c65be027eb7759ab819e267e24dff3b017b6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jan 19 14:42:11 2015 -0800
+Date: Mon Jan 19 14:42:11 2015 -0800
[bindings] Minor
@@ -123,7 +845,7 @@ Date: Mon Jan 19 14:42:11 2015 -0800
commit 3704628d1f124234324b5f2bdd5fdd61c14c7801
Merge: 1aaa7d6 5eb939d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jan 19 16:15:00 2015 -0800
+Date: Mon Jan 19 16:15:00 2015 -0800
Merge pull request #77 from roozbehp/master
@@ -131,7 +853,7 @@ Date: Mon Jan 19 16:15:00 2015 -0800
commit 5eb939ddfe9ef217da2e48d7d0f1f4b7501714ad
Author: Roozbeh Pournader <roozbeh@google.com>
-Date: Sun Jan 18 14:30:08 2015 -0800
+Date: Sun Jan 18 14:30:08 2015 -0800
Change New Tai Lue shaping engine from SEA to default
@@ -150,18 +872,18 @@ Date: Sun Jan 18 14:30:08 2015 -0800
commit 1aaa7d6799b42b392dd191d3c12011721ef99e74
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jan 17 20:16:56 2015 -0800
+Date: Sat Jan 17 20:16:56 2015 -0800
[indic] Fix out-of-bounds access
- src/gen-indic-table.py | 2 +-
+ src/gen-indic-table.py | 2 +-
src/hb-ot-shape-complex-indic-table.cc | 36
+++++++++++++++++-----------------
2 files changed, 19 insertions(+), 19 deletions(-)
commit 238d6a38f2ceb7d8dceec9365a823f032b3b9f7d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 7 10:51:44 2015 -0800
+Date: Wed Jan 7 10:51:44 2015 -0800
[bindings] Update sample.py
@@ -170,29 +892,29 @@ Date: Wed Jan 7 10:51:44 2015 -0800
commit 2cd5323531dcd800549b2cb1cb51d708e72ab2d8
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 6 19:16:38 2015 -0800
+Date: Tue Jan 6 19:16:38 2015 -0800
[bindings] Use hb_glib_blob_create() in sample
hb_blob_create() is considered C-only API.
src/hb-blob.cc | 8 ++++----
- src/sample.py | 19 +++++++++----------
+ src/sample.py | 19 +++++++++----------
2 files changed, 13 insertions(+), 14 deletions(-)
commit 0ef179e2dc040c13497af847b8c1cec846dbdbf9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 6 16:58:33 2015 -0800
+Date: Tue Jan 6 16:58:33 2015 -0800
[glib] Add hb_glib_blob_create() that takes GBytes
src/hb-glib.cc | 11 +++++++++++
- src/hb-glib.h | 3 +++
+ src/hb-glib.h | 3 +++
2 files changed, 14 insertions(+)
commit b91904a40da6287f84bc79de60674fa57232ec09
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 6 15:43:14 2015 -0800
+Date: Tue Jan 6 15:43:14 2015 -0800
[bindings] Replace deprecated allow-none with optional and nullable
@@ -203,7 +925,7 @@ Date: Tue Jan 6 15:43:14 2015 -0800
commit 81a31f3eff44a85bb2160d51156a01a18f0a97df
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 6 15:37:31 2015 -0800
+Date: Tue Jan 6 15:37:31 2015 -0800
[bindings] Make sample Python 2/3 compatible
@@ -212,7 +934,7 @@ Date: Tue Jan 6 15:37:31 2015 -0800
commit b632e7997d9cb6e4782cab6d8c62e8e5edaa4cb0
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 6 14:05:26 2015 -0800
+Date: Tue Jan 6 14:05:26 2015 -0800
Fix up gobject-introspection a bit
@@ -220,12 +942,12 @@ Date: Tue Jan 6 14:05:26 2015 -0800
src/hb-blob.cc | 6 +++---
src/hb-buffer.cc | 2 +-
- src/sample.py | 34 ++++++++++++++++++++++++++++------
+ src/sample.py | 34 ++++++++++++++++++++++++++++------
3 files changed, 32 insertions(+), 10 deletions(-)
commit 3d1a666a8629a8502a2bcf23ab943e2b39a0da92
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jan 5 14:43:13 2015 -0800
+Date: Mon Jan 5 14:43:13 2015 -0800
Remove hardcoded ICU include paths.
@@ -239,7 +961,7 @@ Date: Mon Jan 5 14:43:13 2015 -0800
commit 8cb41cb9508eb1bb6319e92f900cfe5e8a131be3
Merge: 365c03f fb85d61
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Jan 4 20:32:18 2015 -0800
+Date: Sun Jan 4 20:32:18 2015 -0800
Merge pull request #76 from cpeterso/cpeterso/Wunused-function
@@ -247,12 +969,12 @@ Date: Sun Jan 4 20:32:18 2015 -0800
commit fb85d618f5883458bacf0ecb0894772291a2d738
Author: Chris Peterson <cpeterson@mozilla.com>
-Date: Sun Jan 4 19:31:10 2015 -0800
+Date: Sun Jan 4 19:31:10 2015 -0800
Add #ifdef HB_USE_ATEXIT to fix -Wunused-function warnings
src/hb-common.cc | 2 +-
- src/hb-ft.cc | 4 +++-
+ src/hb-ft.cc | 4 +++-
src/hb-shape.cc | 4 +++-
src/hb-shaper.cc | 4 +++-
4 files changed, 10 insertions(+), 4 deletions(-)
@@ -260,7 +982,7 @@ Date: Sun Jan 4 19:31:10 2015 -0800
commit 365c03fc2bcdb4098314a0e123c46018fb882586
Merge: c36c4a9 d1897a9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jan 3 21:55:30 2015 -0800
+Date: Sat Jan 3 21:55:30 2015 -0800
Merge pull request #75 from cpeterso/cpeterso/Wunused-value
@@ -268,17 +990,17 @@ Date: Sat Jan 3 21:55:30 2015 -0800
commit d1897a98d8da40cffb57c07099a9a93cfeaacc36
Author: Chris Peterson <cpeterson@mozilla.com>
-Date: Sat Jan 3 19:46:19 2015 -0800
+Date: Sat Jan 3 19:46:19 2015 -0800
Fix hb_atomic_ptr_cmpexch -Wunused-value warnings
src/hb-common.cc | 2 +-
- src/hb-icu.cc | 4 +---
+ src/hb-icu.cc | 4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
commit c36c4a9924609df648e62e47fa017b19b844fd98
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jan 2 14:09:23 2015 -0800
+Date: Fri Jan 2 14:09:23 2015 -0800
Add missing va_end()
@@ -289,7 +1011,7 @@ Date: Fri Jan 2 14:09:23 2015 -0800
commit f34aaba8687a20794835e2dc878c52d1b53e6f85
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Dec 28 18:56:15 2014 -0800
+Date: Sun Dec 28 18:56:15 2014 -0800
[ft] Don't set font ppem
@@ -309,7 +1031,7 @@ Date: Sun Dec 28 18:56:15 2014 -0800
commit 350f3a02ce225e5d78db8ac96de1351ff9f96dd5
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Dec 28 17:44:26 2014 -0800
+Date: Sun Dec 28 17:44:26 2014 -0800
[ft] Add hb_ft_face_create_referenced() and
hb_ft_font_create_referenced()
@@ -372,7 +1094,7 @@ Date: Sun Dec 28 17:44:26 2014 -0800
commit 9a3b74884b2e41c7040611030f4336f13d18fd3e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Dec 28 17:27:39 2014 -0800
+Date: Sun Dec 28 17:27:39 2014 -0800
Remove redundant check for FT_Face_GetCharVariantIndex
@@ -385,7 +1107,7 @@ Date: Sun Dec 28 17:27:39 2014 -0800
commit 1226b2e930aa456cc05bbe621c96f4286a95cff6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Dec 28 17:04:23 2014 -0800
+Date: Sun Dec 28 17:04:23 2014 -0800
Fix FreeType version check
@@ -394,7 +1116,7 @@ Date: Sun Dec 28 17:04:23 2014 -0800
commit affacf2f37db767ab8df7f2db6cd9e0e9b0a2b8a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Dec 28 16:20:31 2014 -0800
+Date: Sun Dec 28 16:20:31 2014 -0800
[ft] Open blob in READONLY mode
@@ -406,7 +1128,7 @@ Date: Sun Dec 28 16:20:31 2014 -0800
commit 395b35903e052aecc97d0807e4f813c64c0d2b0b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Dec 28 16:03:26 2014 -0800
+Date: Sun Dec 28 16:03:26 2014 -0800
Avoid accessing layout tables at face destruction
@@ -420,14 +1142,14 @@ Date: Sun Dec 28 16:03:26 2014 -0800
refcounting to help avoid that, it happens that we were accessing
the table when we didn't really have to. Avoid that.
- src/hb-ot-layout-private.hh | 3 +--
- src/hb-ot-layout.cc | 4 ++--
+ src/hb-ot-layout-private.hh | 3 +--
+ src/hb-ot-layout.cc | 4 ++--
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
3 files changed, 4 insertions(+), 5 deletions(-)
commit 7d5e7613ced3dd39d05df83ca7e8952cbecd68f6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Dec 18 18:22:21 2014 -0800
+Date: Thu Dec 18 18:22:21 2014 -0800
Fail blob creation if length overflows or is too large
@@ -448,7 +1170,7 @@ Date: Thu Dec 18 18:22:21 2014 -0800
commit d5a5052098b0aa79ff55c235e61a9db477c4120f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Dec 18 18:09:41 2014 -0800
+Date: Thu Dec 18 18:09:41 2014 -0800
Assert that blob length doesn't overflow address.
@@ -460,17 +1182,17 @@ Date: Thu Dec 18 18:09:41 2014 -0800
commit 66e37409b3bc1eddc86704ae26d9176677ce6aa6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Dec 17 12:09:17 2014 -0800
+Date: Wed Dec 17 12:09:17 2014 -0800
0.9.37
- NEWS | 8 ++++++++
+ NEWS | 8 ++++++++
configure.ac | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
commit 093c520de506aec74f3fb1e195c0ca85813424dd
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 21:07:53 2014 -0800
+Date: Fri Dec 12 21:07:53 2014 -0800
[otlayout] Mark variables that are C arrays as opposed to OT::ArrayOf
@@ -481,7 +1203,7 @@ Date: Fri Dec 12 21:07:53 2014 -0800
commit 9df0a520306a491f973d42965597bfda6023e508
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 20:54:28 2014 -0800
+Date: Fri Dec 12 20:54:28 2014 -0800
[otlayout] Avoid invalid access with Context format 3
@@ -490,7 +1212,7 @@ Date: Fri Dec 12 20:54:28 2014 -0800
commit 295ef1dd5229f47d8e0eb5b4eb48c90a6b470073
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 20:43:18 2014 -0800
+Date: Fri Dec 12 20:43:18 2014 -0800
[ot] Debug get_coverage
@@ -499,7 +1221,7 @@ Date: Fri Dec 12 20:43:18 2014 -0800
commit 00f6a8e334ec4c586e4e633a95b411ccb50306d3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 20:36:49 2014 -0800
+Date: Fri Dec 12 20:36:49 2014 -0800
[ot] Print format in dispatch trace
@@ -510,7 +1232,7 @@ Date: Fri Dec 12 20:36:49 2014 -0800
commit 5c7d6f02d71362c2b192a7d96e6181977682921c
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 20:28:49 2014 -0800
+Date: Fri Dec 12 20:28:49 2014 -0800
Minor
@@ -519,7 +1241,7 @@ Date: Fri Dec 12 20:28:49 2014 -0800
commit 153beebba9b76901b8b62b90ba0dc69462ae2090
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 19:46:09 2014 -0800
+Date: Fri Dec 12 19:46:09 2014 -0800
[ot] Make sure all toplevel tables have tableTag
@@ -530,7 +1252,7 @@ Date: Fri Dec 12 19:46:09 2014 -0800
commit 282b13f9b4d86b091714de7fbddc94b3e3ff3d91
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 19:32:46 2014 -0800
+Date: Fri Dec 12 19:32:46 2014 -0800
[sanitize] Improve debug output some more
@@ -539,7 +1261,7 @@ Date: Fri Dec 12 19:32:46 2014 -0800
commit 0766ee1f4e6046598a2e8fb1b167c3942b4a87a0
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Dec 12 18:23:20 2014 -0800
+Date: Fri Dec 12 18:23:20 2014 -0800
[sanitize] Improve debug output
@@ -548,7 +1270,7 @@ Date: Fri Dec 12 18:23:20 2014 -0800
commit e6f80fa1044243898c402ec6a59d6c1b5420be53
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Dec 10 12:05:24 2014 -0800
+Date: Wed Dec 10 12:05:24 2014 -0800
[indic] Allow ZWJ/ZWNJ before SM
@@ -574,28 +1296,28 @@ Date: Wed Dec 10 12:05:24 2014 -0800
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
- src/hb-ot-shape-complex-indic-machine.rl | 2 +-
- test/shaping/Makefile.am | 1 +
+ src/hb-ot-shape-complex-indic-machine.rl | 2 +-
+ test/shaping/Makefile.am | 1 +
.../sha1sum/5028afb650b1bb718ed2131e872fbcce57828fff.ttf | Bin 0 ->
4720 bytes
- test/shaping/fonts/sha1sum/MANIFEST | 1 +
- test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/indic-joiner-candrabindu.tests | 2 ++
+ test/shaping/fonts/sha1sum/MANIFEST | 1 +
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/indic-joiner-candrabindu.tests | 2 ++
6 files changed, 6 insertions(+), 1 deletion(-)
commit c0e95abc5f3f14121483b71f10837828a3a1d73a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Nov 20 14:42:24 2014 -0800
+Date: Thu Nov 20 14:42:24 2014 -0800
0.9.36
- NEWS | 12 ++++++++++++
+ NEWS | 12 ++++++++++++
configure.ac | 2 +-
2 files changed, 13 insertions(+), 1 deletion(-)
commit fde3e4a423871463c883cb969e99c29cb6f69f6b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 29 11:23:08 2014 -0700
+Date: Wed Oct 29 11:23:08 2014 -0700
In hb_ot_collect_glyphs(), don't recurse to a lookup more than once
@@ -612,7 +1334,7 @@ Date: Wed Oct 29 11:23:08 2014 -0700
commit 5a5640d8506ccfc99fd119e89e829170d1fea421
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Oct 14 21:26:13 2014 -0700
+Date: Tue Oct 14 21:26:13 2014 -0700
Move code around
@@ -622,7 +1344,7 @@ Date: Tue Oct 14 21:26:13 2014 -0700
commit 666b42f73bd1f516657b206ef738108825bf239f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Oct 14 21:24:59 2014 -0700
+Date: Tue Oct 14 21:24:59 2014 -0700
Move macros around
@@ -630,13 +1352,13 @@ Date: Tue Oct 14 21:24:59 2014 -0700
src/hb-open-type-private.hh | 63
++++++++++++++++++++++++++++++++++++++-------
- src/hb-private.hh | 41 -----------------------------
- src/hb-uniscribe.cc | 6 +++++
+ src/hb-private.hh | 41 -----------------------------
+ src/hb-uniscribe.cc | 6 +++++
3 files changed, 60 insertions(+), 50 deletions(-)
commit 5c87120b8178566ddae99d9825edc24f9b87ea3d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Oct 14 20:07:31 2014 -0700
+Date: Tue Oct 14 20:07:31 2014 -0700
Fix misc warnings
@@ -644,12 +1366,12 @@ Date: Tue Oct 14 20:07:31 2014 -0700
src/hb-buffer-deserialize-json.rl | 4 ++--
src/hb-ot-layout-gsub-table.hh | 2 +-
- src/hb-private.hh | 6 +++---
+ src/hb-private.hh | 6 +++---
3 files changed, 6 insertions(+), 6 deletions(-)
commit a1f27ac3c48cfe6d532dc422cf256952fea472ed
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Oct 2 16:54:33 2014 -0400
+Date: Thu Oct 2 16:54:33 2014 -0400
Update test expectation for previous commit
@@ -658,7 +1380,7 @@ Date: Thu Oct 2 16:54:33 2014 -0400
commit 8afaf096870d7895cf2fffb6438b02c0ad1b6c52
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Oct 2 16:40:41 2014 -0400
+Date: Thu Oct 2 16:40:41 2014 -0400
[ft] Add NO_HINTING in a couple other places
@@ -667,7 +1389,7 @@ Date: Thu Oct 2 16:40:41 2014 -0400
commit 7228011411f0e490ad1ba9894dd0d576823903ea
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 18:58:43 2014 -0400
+Date: Wed Oct 1 18:58:43 2014 -0400
[travis] Fix clang again
@@ -676,7 +1398,7 @@ Date: Wed Oct 1 18:58:43 2014 -0400
commit 406a020e5228d4a04da6282f5a75165bab7a483e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 18:54:55 2014 -0400
+Date: Wed Oct 1 18:54:55 2014 -0400
[travis] Fail build if coveralls fails
@@ -685,7 +1407,7 @@ Date: Wed Oct 1 18:54:55 2014 -0400
commit a8aa20260dbd9af9cbcc7d545fa8b41b07aae276
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 18:48:40 2014 -0400
+Date: Wed Oct 1 18:48:40 2014 -0400
[travis] Only run coveralls under gcc
@@ -694,7 +1416,7 @@ Date: Wed Oct 1 18:48:40 2014 -0400
commit 5de0407337d630117e424b7c715b7cbd432f4ef9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 18:18:25 2014 -0400
+Date: Wed Oct 1 18:18:25 2014 -0400
Help clang with gcov
@@ -704,7 +1426,7 @@ Date: Wed Oct 1 18:18:25 2014 -0400
commit ef40ca8e5e830231539dc61088b58e907a840629
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 18:07:27 2014 -0400
+Date: Wed Oct 1 18:07:27 2014 -0400
[travis] Try to make coverage work with clang
@@ -713,7 +1435,7 @@ Date: Wed Oct 1 18:07:27 2014 -0400
commit 52784da17b7278f2587168234878bb15d918c9fe
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:57:43 2014 -0400
+Date: Wed Oct 1 17:57:43 2014 -0400
[travis] Minor
@@ -722,7 +1444,7 @@ Date: Wed Oct 1 17:57:43 2014 -0400
commit f2c9005f5123c7f9b227fd9ac9a3438c5fe4cf47
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:45:17 2014 -0400
+Date: Wed Oct 1 17:45:17 2014 -0400
Add README.md symlink to make github happy
@@ -731,7 +1453,7 @@ Date: Wed Oct 1 17:45:17 2014 -0400
commit 40987e8aaca4155d9cff211549e8d23f24c334e5
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:44:30 2014 -0400
+Date: Wed Oct 1 17:44:30 2014 -0400
[travis] Re-enable clang
@@ -740,7 +1462,7 @@ Date: Wed Oct 1 17:44:30 2014 -0400
commit 5400ac476e5a5bcc66559fcfb05a683a6b433ea1
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:41:41 2014 -0400
+Date: Wed Oct 1 17:41:41 2014 -0400
Add build and coverage status links
@@ -749,7 +1471,7 @@ Date: Wed Oct 1 17:41:41 2014 -0400
commit 19360e0a5609c65842a989587b01a4dc7c9eae36
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:35:03 2014 -0400
+Date: Wed Oct 1 17:35:03 2014 -0400
[travis] Report matrix settings to help debugging
@@ -758,7 +1480,7 @@ Date: Wed Oct 1 17:35:03 2014 -0400
commit 9b89fc52f49b80df1f27ac7de69e0152bdcc94d6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:20:31 2014 -0400
+Date: Wed Oct 1 17:20:31 2014 -0400
[travis] More coveralls
@@ -767,7 +1489,7 @@ Date: Wed Oct 1 17:20:31 2014 -0400
commit a68f2b62c1f24009993911b1dbcb76b821e58c51
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:05:58 2014 -0400
+Date: Wed Oct 1 17:05:58 2014 -0400
[travis] Give coveralls a hand
@@ -776,7 +1498,7 @@ Date: Wed Oct 1 17:05:58 2014 -0400
commit 5194d647e13aa5ba2cfcdbdcd4a659dc5bd11418
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 17:03:26 2014 -0400
+Date: Wed Oct 1 17:03:26 2014 -0400
[travis] Disable clang for now
@@ -785,7 +1507,7 @@ Date: Wed Oct 1 17:03:26 2014 -0400
commit 715f27f85f97fee13b119f60037db5c139489ee6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 16:53:00 2014 -0400
+Date: Wed Oct 1 16:53:00 2014 -0400
[test] Fixup test
@@ -794,7 +1516,7 @@ Date: Wed Oct 1 16:53:00 2014 -0400
commit 2a508ddae5de3852243725ce22caa3dcffccb83e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 16:49:22 2014 -0400
+Date: Wed Oct 1 16:49:22 2014 -0400
[travis] Another try at coveralls.io
@@ -803,7 +1525,7 @@ Date: Wed Oct 1 16:49:22 2014 -0400
commit dfe8078e5be46cab5e67aed977749c1d6725e6a7
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 16:38:47 2014 -0400
+Date: Wed Oct 1 16:38:47 2014 -0400
[travis] First try to hookup coveralls.io code coverage tracking
@@ -812,7 +1534,7 @@ Date: Wed Oct 1 16:38:47 2014 -0400
commit 1b387571e4d0eed883f1ae8ec85cf0e818b4a7f9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 16:14:59 2014 -0400
+Date: Wed Oct 1 16:14:59 2014 -0400
[travis] Unbreak
@@ -821,7 +1543,7 @@ Date: Wed Oct 1 16:14:59 2014 -0400
commit e281ed360dfdf803aea87b6078983867d08e07a7
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 16:09:08 2014 -0400
+Date: Wed Oct 1 16:09:08 2014 -0400
[travis] Minor
@@ -830,7 +1552,7 @@ Date: Wed Oct 1 16:09:08 2014 -0400
commit c0b82ba32a1987902a3b9c05b46f8be6b121883a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 14:24:07 2014 -0400
+Date: Wed Oct 1 14:24:07 2014 -0400
Create ragel-generated files in srcdir
@@ -839,7 +1561,7 @@ Date: Wed Oct 1 14:24:07 2014 -0400
commit 79bbb10b0da49ace763a50f259c2ea687143f7ea
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 13:33:21 2014 -0400
+Date: Wed Oct 1 13:33:21 2014 -0400
Clean ragel-generated headers in maintainercleanfiles
@@ -848,7 +1570,7 @@ Date: Wed Oct 1 13:33:21 2014 -0400
commit 8971cac83eb4f06847abfa3eaa15857d27141810
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 12:41:03 2014 -0400
+Date: Wed Oct 1 12:41:03 2014 -0400
Don't use tmp files in Makefile
@@ -860,7 +1582,7 @@ Date: Wed Oct 1 12:41:03 2014 -0400
commit 22723186652224a635f1dad5cda0f753e78c301d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 11:56:07 2014 -0400
+Date: Wed Oct 1 11:56:07 2014 -0400
check-static-inits: Filter out zero-length sections
@@ -872,7 +1594,7 @@ Date: Wed Oct 1 11:56:07 2014 -0400
commit b695a3dc2300ed970a4154ad8b997407b3cb4faf
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 11:55:14 2014 -0400
+Date: Wed Oct 1 11:55:14 2014 -0400
check-static-inits: check for static finalizers
@@ -881,7 +1603,7 @@ Date: Wed Oct 1 11:55:14 2014 -0400
commit 250398b1e4f102e4e44eeb9e2aebf0cd2d397344
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 11:28:01 2014 -0400
+Date: Wed Oct 1 11:28:01 2014 -0400
Hide other bubble-sort
@@ -890,7 +1612,7 @@ Date: Wed Oct 1 11:28:01 2014 -0400
commit c1e87442621beff98791ce56cfd1ccee506c4ee6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 1 11:07:08 2014 -0400
+Date: Wed Oct 1 11:07:08 2014 -0400
Hide bubble-sort!
@@ -899,7 +1621,7 @@ Date: Wed Oct 1 11:07:08 2014 -0400
commit 80f77282264afb1356351024b1f062b2824bba3b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 25 17:59:46 2014 +0300
+Date: Thu Sep 25 17:59:46 2014 +0300
[util] Fix ansi output when surface is empty
@@ -908,7 +1630,7 @@ Date: Thu Sep 25 17:59:46 2014 +0300
commit 156852991e18e5ac256ee4d6b2916931cc274977
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 25 17:45:49 2014 +0300
+Date: Thu Sep 25 17:45:49 2014 +0300
[ot-font] Add hb_ot_face_cmap_accelerator_t
@@ -918,7 +1640,7 @@ Date: Thu Sep 25 17:45:49 2014 +0300
commit d088ccaf11d9475fe0d269ce130b1793b8a1ffbf
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 25 17:26:56 2014 +0300
+Date: Thu Sep 25 17:26:56 2014 +0300
[ot-font] Minor
@@ -927,7 +1649,7 @@ Date: Thu Sep 25 17:26:56 2014 +0300
commit d7c160a1530adabbcf33725b105072293115a34c
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 25 17:15:35 2014 +0300
+Date: Thu Sep 25 17:15:35 2014 +0300
[ot-font] Handle missing vertical metrics tables
@@ -936,11 +1658,11 @@ Date: Thu Sep 25 17:15:35 2014 +0300
commit be1cca270257bfdfee3fbe821175269713acf408
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 25 16:53:24 2014 +0300
+Date: Thu Sep 25 16:53:24 2014 +0300
[ot-font] Add metrics_accel_t
- src/hb-ot-font.cc | 111
+ src/hb-ot-font.cc | 111
++++++++++++++++++++++--------------------------
src/hb-ot-hhea-table.hh | 2 +-
src/hb-ot-hmtx-table.hh | 4 +-
@@ -948,11 +1670,11 @@ Date: Thu Sep 25 16:53:24 2014 +0300
commit d41b809e9d21e655129a97c600d28f278fd7e62c
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 25 13:04:08 2014 +0300
+Date: Thu Sep 25 13:04:08 2014 +0300
[ot-font] Start adding vertical support
- src/hb-ot-font.cc | 57 ++++++++++++++++++++++++++++++++++----------
+ src/hb-ot-font.cc | 57 ++++++++++++++++++++++++++++++++++----------
src/hb-ot-hhea-table.hh | 63
++++++++++++++++++++++++++-----------------------
src/hb-ot-hmtx-table.hh | 35 +++++++++++++++++----------
@@ -960,7 +1682,7 @@ Date: Thu Sep 25 13:04:08 2014 +0300
commit 22f0de5025aeeef4c8b3ca876d291d4c8e558d94
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 25 12:54:57 2014 -0400
+Date: Mon Aug 25 12:54:57 2014 -0400
Fix build
@@ -969,7 +1691,7 @@ Date: Mon Aug 25 12:54:57 2014 -0400
commit d457e3f0ff9b27616a34e4cc110d3edbf8796841
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 25 12:31:19 2014 -0400
+Date: Mon Aug 25 12:31:19 2014 -0400
[arabic] Don't #include __FILE__
@@ -982,7 +1704,7 @@ Date: Mon Aug 25 12:31:19 2014 -0400
commit 9ceb673d9c35bb28c9b2ed5359bdd8b23fda0019
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 25 11:48:12 2014 -0400
+Date: Mon Aug 25 11:48:12 2014 -0400
[arabic] Allow disabling win1256 fallback code
@@ -993,7 +1715,7 @@ Date: Mon Aug 25 11:48:12 2014 -0400
commit 8a9319502141c09695461c386e54f998250420e9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Aug 22 12:06:57 2014 -0400
+Date: Fri Aug 22 12:06:57 2014 -0400
[ot] Prefer Windows platform cmap tables / accept all Unicode
encodingIDs
@@ -1005,7 +1727,7 @@ Date: Fri Aug 22 12:06:57 2014 -0400
commit 270971a0fccdf4964fd3e8ab8e5cf53037a3518d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Aug 15 14:28:04 2014 -0400
+Date: Fri Aug 15 14:28:04 2014 -0400
[win32] Avoid preprocessor warnings re macros
@@ -1014,17 +1736,17 @@ Date: Fri Aug 15 14:28:04 2014 -0400
commit 8c6bd34d38fb3007c3d660fce0095cc5c7e9962e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 13:33:37 2014 -0400
+Date: Thu Aug 14 13:33:37 2014 -0400
Fix check-symbols on OS X
src/check-libstdc++.sh | 14 +++++++-------
- src/check-symbols.sh | 8 +++++++-
+ src/check-symbols.sh | 8 +++++++-
2 files changed, 14 insertions(+), 8 deletions(-)
commit 522b1cc5261c1419166bfb90d2ff634b684be66a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 13:29:30 2014 -0400
+Date: Thu Aug 14 13:29:30 2014 -0400
[coretext] Hide feature_mappings
@@ -1033,7 +1755,7 @@ Date: Thu Aug 14 13:29:30 2014 -0400
commit 0d2c2f238bf0a847ecd55a70cc0f081f18a053ac
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 13:25:55 2014 -0400
+Date: Thu Aug 14 13:25:55 2014 -0400
Simplify hb-object
@@ -1043,7 +1765,7 @@ Date: Thu Aug 14 13:25:55 2014 -0400
commit 9d861b81f349188a4507350398786a6e94038095
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 13:15:21 2014 -0400
+Date: Thu Aug 14 13:15:21 2014 -0400
Really fix clang build this time
@@ -1053,7 +1775,7 @@ Date: Thu Aug 14 13:15:21 2014 -0400
commit 272226f294382b0c6921b36e0e67fc53daa765d3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 13:11:33 2014 -0400
+Date: Thu Aug 14 13:11:33 2014 -0400
Revert "Fix build on clang after previous commit"
@@ -1064,7 +1786,7 @@ Date: Thu Aug 14 13:11:33 2014 -0400
commit 9c80cbc87f23040a334e30c750f64523d9ef10c8
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 13:09:52 2014 -0400
+Date: Thu Aug 14 13:09:52 2014 -0400
Fix build on clang after previous commit
@@ -1073,7 +1795,7 @@ Date: Thu Aug 14 13:09:52 2014 -0400
commit a5a27073cfff91c4f80209ca8462543130af61dd
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 13:05:36 2014 -0400
+Date: Thu Aug 14 13:05:36 2014 -0400
Rewrite this==NULL checks to avoid undefined behavior
@@ -1084,7 +1806,7 @@ Date: Thu Aug 14 13:05:36 2014 -0400
commit cc3b2d432b02f9381cdf19e2dd5fbbdd002a750c
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 12:59:16 2014 -0400
+Date: Thu Aug 14 12:59:16 2014 -0400
Remove this==NULL check from face->reference_table()
@@ -1096,7 +1818,7 @@ Date: Thu Aug 14 12:59:16 2014 -0400
commit cd7ea4f791dc41d62ad238673e2ea0107883c9e3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 14 12:57:02 2014 -0400
+Date: Thu Aug 14 12:57:02 2014 -0400
Make hb_object_t members private
@@ -1104,12 +1826,12 @@ Date: Thu Aug 14 12:57:02 2014 -0400
https://code.google.com/p/chromium/issues/detail?id=403594
src/hb-object-private.hh | 26 +++++++++++++++++++++-----
- src/hb-set-private.hh | 2 +-
+ src/hb-set-private.hh | 2 +-
2 files changed, 22 insertions(+), 6 deletions(-)
commit c4308f895aef93ed884fd54e4ebc65b6d2cfc94a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Aug 13 19:42:01 2014 -0400
+Date: Wed Aug 13 19:42:01 2014 -0400
Minor
@@ -1118,17 +1840,17 @@ Date: Wed Aug 13 19:42:01 2014 -0400
commit cd5a1149d980dc3c17b6bb9d961c761b2671ba1b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Aug 13 12:39:34 2014 -0400
+Date: Wed Aug 13 12:39:34 2014 -0400
0.9.35
- NEWS | 29 +++++++++++++++++++++++++++++
+ NEWS | 29 +++++++++++++++++++++++++++++
configure.ac | 2 +-
2 files changed, 30 insertions(+), 1 deletion(-)
commit 20076cc41e673c31305fcb58d37b3b292fd35f83
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 19:26:35 2014 -0400
+Date: Tue Aug 12 19:26:35 2014 -0400
[coretext] Add version guards for kCTLanguageAttributeName
@@ -1137,7 +1859,7 @@ Date: Tue Aug 12 19:26:35 2014 -0400
commit 1b3011c27df531875d432e909ae6b77f115c5017
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 19:17:19 2014 -0400
+Date: Tue Aug 12 19:17:19 2014 -0400
[coretext] Pass buffer language to CoreText
@@ -1146,7 +1868,7 @@ Date: Tue Aug 12 19:17:19 2014 -0400
commit 3eb6a4dbf25b11fce5e0e426e89f7457887aeca0
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 19:10:33 2014 -0400
+Date: Tue Aug 12 19:10:33 2014 -0400
[coretext] Minor
@@ -1155,7 +1877,7 @@ Date: Tue Aug 12 19:10:33 2014 -0400
commit 08acfe0d3a1d8223a9fa0696703fff63d6c2ea8b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 18:57:08 2014 -0400
+Date: Tue Aug 12 18:57:08 2014 -0400
[hb-coretext] Fix cluster order of notdef runs in RTL text
@@ -1164,7 +1886,7 @@ Date: Tue Aug 12 18:57:08 2014 -0400
commit 30eed75de24ac0b6648a72d98d10bb24a563d7ef
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 17:15:09 2014 -0400
+Date: Tue Aug 12 17:15:09 2014 -0400
[shape-plan] Fix typo!
@@ -1177,7 +1899,7 @@ Date: Tue Aug 12 17:15:09 2014 -0400
commit dc9aba6fc53898acd7281b118cec0355d61b1df2
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 17:14:36 2014 -0400
+Date: Tue Aug 12 17:14:36 2014 -0400
[shape-plan] Better debug messages
@@ -1186,7 +1908,7 @@ Date: Tue Aug 12 17:14:36 2014 -0400
commit e956c65bf724a8403471362288d2361361b6ac58
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 17:03:27 2014 -0400
+Date: Tue Aug 12 17:03:27 2014 -0400
[shape-plan] Simplify macro
@@ -1195,7 +1917,7 @@ Date: Tue Aug 12 17:03:27 2014 -0400
commit 29e25550ce8fee3fecc42d20a45ce9c212dc59df
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 17:02:59 2014 -0400
+Date: Tue Aug 12 17:02:59 2014 -0400
Fix gcc warning
@@ -1204,7 +1926,7 @@ Date: Tue Aug 12 17:02:59 2014 -0400
commit 8d5eebc0c6ada01128c6ee384340efdbef7ba29d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 16:50:22 2014 -0400
+Date: Tue Aug 12 16:50:22 2014 -0400
[shape-plan] Fix shape-plan caching with more than one requested
shaper
@@ -1218,7 +1940,7 @@ Date: Tue Aug 12 16:50:22 2014 -0400
commit bc3d0dc60104f1cda465a5e8ba5b40ed5bec70b9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 16:49:18 2014 -0400
+Date: Tue Aug 12 16:49:18 2014 -0400
[shape-plan] Add debug tracing
@@ -1227,7 +1949,7 @@ Date: Tue Aug 12 16:49:18 2014 -0400
commit 81b8d9777b9c38c7e6408591763a4cac6de18e4b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 15:49:47 2014 -0400
+Date: Tue Aug 12 15:49:47 2014 -0400
[coretext] Fix buffer resizing
@@ -1238,7 +1960,7 @@ Date: Tue Aug 12 15:49:47 2014 -0400
commit c3e924fb9e0e2d4003790817655efd9c5688c7e1
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 14:25:11 2014 -0400
+Date: Tue Aug 12 14:25:11 2014 -0400
[coretext] Rewind scratch-allocated arrays when not needed anymore
@@ -1247,7 +1969,7 @@ Date: Tue Aug 12 14:25:11 2014 -0400
commit 8fd4d70b1450d7261a35ab3dea1c70baea2e5c99
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 13:12:31 2014 -0400
+Date: Tue Aug 12 13:12:31 2014 -0400
[wince] Two more Windows CE fixes
@@ -1256,12 +1978,12 @@ Date: Tue Aug 12 13:12:31 2014 -0400
https://codereview.qt-project.org/#/c/92087/
src/hb-mutex-private.hh | 2 +-
- src/hb-private.hh | 2 ++
+ src/hb-private.hh | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
commit fd0001d7dbe6ede99a9f87f96f231ffb53303be8
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 12 10:32:41 2014 -0400
+Date: Tue Aug 12 10:32:41 2014 -0400
[coretext] Compare CGFont and PS name, if CTFont didn't match
@@ -1281,7 +2003,7 @@ Date: Tue Aug 12 10:32:41 2014 -0400
commit 5a0eed3b50629be4826e4e9428f2c3255195395d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 23:47:16 2014 -0400
+Date: Mon Aug 11 23:47:16 2014 -0400
[coretext] Implement vertical shaping
@@ -1295,7 +2017,7 @@ Date: Mon Aug 11 23:47:16 2014 -0400
commit 1b55077f03758e49f93b8bc1de678e96ea58718c
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 20:45:12 2014 -0400
+Date: Mon Aug 11 20:45:12 2014 -0400
[coretext] Remove unnecessary alt_size
@@ -1306,7 +2028,7 @@ Date: Mon Aug 11 20:45:12 2014 -0400
commit 10b1104d791a0b0103c6bbb083b5819f2b7d328d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 20:02:45 2014 -0400
+Date: Mon Aug 11 20:02:45 2014 -0400
[coretext] Use CFRunStatus
@@ -1318,7 +2040,7 @@ Date: Mon Aug 11 20:02:45 2014 -0400
commit fd1a6aa8d029c701b1532efa59ce901109cfc216
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 20:01:37 2014 -0400
+Date: Mon Aug 11 20:01:37 2014 -0400
[coretext] Minor
@@ -1327,7 +2049,7 @@ Date: Mon Aug 11 20:01:37 2014 -0400
commit 130856c705641aa681307b5b51b5fb84e295f382
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 19:16:26 2014 -0400
+Date: Mon Aug 11 19:16:26 2014 -0400
[coretext] Remove debug printf!
@@ -1336,7 +2058,7 @@ Date: Mon Aug 11 19:16:26 2014 -0400
commit b5fbc3b8f560235d014c62e49220574ffcf89349
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 18:40:01 2014 -0400
+Date: Mon Aug 11 18:40:01 2014 -0400
API: Do not clear buffer-flags in hb_buffer_clear_contents()
@@ -1349,13 +2071,13 @@ Date: Mon Aug 11 18:40:01 2014 -0400
Tests updated.
src/hb-buffer-private.hh | 4 +---
- src/hb-buffer.cc | 4 ++--
+ src/hb-buffer.cc | 4 ++--
test/api/test-buffer.c | 15 ++++++++++++---
3 files changed, 15 insertions(+), 8 deletions(-)
commit 104484cefeca03d95837bba5f39178693c86ce8a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 18:23:43 2014 -0400
+Date: Mon Aug 11 18:23:43 2014 -0400
Minor
@@ -1364,7 +2086,7 @@ Date: Mon Aug 11 18:23:43 2014 -0400
commit 4acce77db7dd588ba277779c4997b0256ebe426e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 17:46:50 2014 -0400
+Date: Mon Aug 11 17:46:50 2014 -0400
[coretext] Pass buffer direction to CoreText
@@ -1375,7 +2097,7 @@ Date: Mon Aug 11 17:46:50 2014 -0400
commit 5ec45dd37caa8a87ce2689a66272ba8a343fe6ba
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 17:46:12 2014 -0400
+Date: Mon Aug 11 17:46:12 2014 -0400
[coretext] Minor
@@ -1387,7 +2109,7 @@ Date: Mon Aug 11 17:46:12 2014 -0400
commit 624a299b829ccf9864dd2f3001b1a49476e96b4a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 15:29:18 2014 -0400
+Date: Mon Aug 11 15:29:18 2014 -0400
[coretext] Attach marks to base clusters
@@ -1399,7 +2121,7 @@ Date: Mon Aug 11 15:29:18 2014 -0400
commit 3c41ccb5358b0be6cc68d49f436d2cb1792cd5e5
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 15:11:59 2014 -0400
+Date: Mon Aug 11 15:11:59 2014 -0400
[coretext] Use input clusters
@@ -1413,7 +2135,7 @@ Date: Mon Aug 11 15:11:59 2014 -0400
commit a6b8dc87421de33746b0b14d86d2d1532aec02af
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 15:08:19 2014 -0400
+Date: Mon Aug 11 15:08:19 2014 -0400
[coretext] Fix buffer resize handling
@@ -1422,13 +2144,13 @@ Date: Mon Aug 11 15:08:19 2014 -0400
shaper to retry from (almost) scratch.
src/hb-buffer-private.hh | 3 +
- src/hb-coretext.cc | 428
+ src/hb-coretext.cc | 428
++++++++++++++++++++++++++---------------------
2 files changed, 238 insertions(+), 193 deletions(-)
commit 9b3c60c88b118f01610ae7a608b138f79f2dc7be
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 13:25:43 2014 -0400
+Date: Mon Aug 11 13:25:43 2014 -0400
[coretext] Always compute log_clusters
@@ -1439,7 +2161,7 @@ Date: Mon Aug 11 13:25:43 2014 -0400
commit 15c633dd1f412f9ef839d80a8f7af35e7ea48fbc
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 13:42:42 2014 -0400
+Date: Mon Aug 11 13:42:42 2014 -0400
Minor
@@ -1449,7 +2171,7 @@ Date: Mon Aug 11 13:42:42 2014 -0400
commit 9ce067c77524a9ffc77ceabcba5e7dab36fd39de
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Aug 11 02:04:38 2014 -0400
+Date: Mon Aug 11 02:04:38 2014 -0400
[coretext] Simplify cluster mapping
@@ -1458,7 +2180,7 @@ Date: Mon Aug 11 02:04:38 2014 -0400
commit 49f7fb63761e4ca9936990fb90a77fd3600f5ad2
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Aug 10 19:19:38 2014 -0400
+Date: Sun Aug 10 19:19:38 2014 -0400
[coretext] Minor
@@ -1467,7 +2189,7 @@ Date: Sun Aug 10 19:19:38 2014 -0400
commit 25f4fb9b56bb3f8bec821571c78f8829e40daa54
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Aug 10 19:05:25 2014 -0400
+Date: Sun Aug 10 19:05:25 2014 -0400
[coretext] Fix fallback detection
@@ -1478,7 +2200,7 @@ Date: Sun Aug 10 19:05:25 2014 -0400
commit 77a7a53acef7de355116d488e7d64ff1d7e9e9e1
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Aug 10 18:59:47 2014 -0400
+Date: Sun Aug 10 18:59:47 2014 -0400
[coretext] Fix last range
@@ -1492,7 +2214,7 @@ Date: Sun Aug 10 18:59:47 2014 -0400
commit c2b151d95262a8dc2d2ce94e19ab0ef5b0c8f98d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Aug 10 18:52:07 2014 -0400
+Date: Sun Aug 10 18:52:07 2014 -0400
Fix hb_in_range() for types smaller than int
@@ -1503,7 +2225,7 @@ Date: Sun Aug 10 18:52:07 2014 -0400
commit 26a963b9cb4af3119177f277a2d48a5d537458fb
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Aug 10 18:04:50 2014 -0400
+Date: Sun Aug 10 18:04:50 2014 -0400
[wince] Try to fix some stuff on Windows CE
@@ -1517,7 +2239,7 @@ Date: Sun Aug 10 18:04:50 2014 -0400
commit 92aeee3f040c2c32cbf70b27bd6954535388c870
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Aug 10 17:42:19 2014 -0400
+Date: Sun Aug 10 17:42:19 2014 -0400
Minor
@@ -1527,7 +2249,7 @@ Date: Sun Aug 10 17:42:19 2014 -0400
commit b9993d8d6d332994dfbd29e99ff8043622003417
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Aug 10 17:40:24 2014 -0400
+Date: Sun Aug 10 17:40:24 2014 -0400
[coretext] Fix assert on Yosemite
@@ -1541,7 +2263,7 @@ Date: Sun Aug 10 17:40:24 2014 -0400
commit 087733dd66e17297ef0e53680fafe42c84884104
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Apr 18 11:21:08 2014 -0700
+Date: Fri Apr 18 11:21:08 2014 -0700
[coretext] Use CGFont as face_data
@@ -1550,7 +2272,7 @@ Date: Fri Apr 18 11:21:08 2014 -0700
commit d277c3d7eee1fd4fb41c38255e5c4df539353e89
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Aug 7 15:38:52 2014 -0400
+Date: Thu Aug 7 15:38:52 2014 -0400
[arabic] Bug 82306 - Mandaic had errors in its Unicode Joining_Type
@@ -1561,7 +2283,7 @@ Date: Thu Aug 7 15:38:52 2014 -0400
commit 38fb30d7420a4b01f99cee31baa8c3990a1d1c5f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Aug 6 13:34:49 2014 -0400
+Date: Wed Aug 6 13:34:49 2014 -0400
Use atexit() only if it's safe to call from shared library
@@ -1572,17 +2294,17 @@ Date: Wed Aug 6 13:34:49 2014 -0400
https://bugs.freedesktop.org/show_bug.cgi?id=82246
- src/hb-common.cc | 4 ++--
- src/hb-ft.cc | 2 +-
+ src/hb-common.cc | 4 ++--
+ src/hb-ft.cc | 2 +-
src/hb-private.hh | 25 +++++++++++++++++++++++++
- src/hb-shape.cc | 2 +-
- src/hb-shaper.cc | 2 +-
- src/hb-uniscribe.cc | 2 +-
+ src/hb-shape.cc | 2 +-
+ src/hb-shaper.cc | 2 +-
+ src/hb-uniscribe.cc | 2 +-
6 files changed, 31 insertions(+), 6 deletions(-)
commit d5e61470fa8e5046c35a79988e00e012ae4fff0f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Aug 5 14:19:01 2014 -0400
+Date: Tue Aug 5 14:19:01 2014 -0400
[arabic] Fix fallback shaping regression
@@ -1592,28 +2314,28 @@ Date: Tue Aug 5 14:19:01 2014 -0400
Micro-test added.
- src/hb-ot-shape-complex-arabic.cc | 4 ++--
- test/shaping/Makefile.am | 1 +
- test/shaping/fonts/sha1sum/MANIFEST | 1 +
+ src/hb-ot-shape-complex-arabic.cc | 4 ++--
+ test/shaping/Makefile.am | 1 +
+ test/shaping/fonts/sha1sum/MANIFEST | 1 +
.../sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf | Bin 0 ->
6332 bytes
- test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/arabic-fallback-shaping.tests | 1 +
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/arabic-fallback-shaping.tests | 1 +
6 files changed, 6 insertions(+), 2 deletions(-)
commit 91c2c0fd2b0f660d79744b3dfaf39ab86883e96b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Aug 2 19:24:55 2014 -0400
+Date: Sat Aug 2 19:24:55 2014 -0400
0.9.34
- NEWS | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ NEWS | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 +-
2 files changed, 54 insertions(+), 1 deletion(-)
commit d7c850f8037d2701366008eb8c2a527c9d40abde
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Aug 2 17:46:38 2014 -0400
+Date: Sat Aug 2 17:46:38 2014 -0400
[uniscribe] Minor
@@ -1622,29 +2344,29 @@ Date: Sat Aug 2 17:46:38 2014 -0400
commit 8f3eebf7ee4005f9a8efaafcb7f4058cc0a3756e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Aug 2 17:18:46 2014 -0400
+Date: Sat Aug 2 17:18:46 2014 -0400
Make sure gsubgpos buffer vars are available during fallback_position
Add buffer var allocation asserts to a few key places.
- src/hb-ot-layout-gpos-table.hh | 4 ++--
- src/hb-ot-layout-gsub-table.hh | 2 +-
- src/hb-ot-layout-private.hh | 15 +++++++++++++++
+ src/hb-ot-layout-gpos-table.hh | 4 ++--
+ src/hb-ot-layout-gsub-table.hh | 2 +-
+ src/hb-ot-layout-private.hh | 15 +++++++++++++++
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
- src/hb-ot-shape-fallback.cc | 2 ++
- src/hb-ot-shape-normalize.cc | 2 ++
- src/hb-ot-shape.cc | 3 +++
+ src/hb-ot-shape-fallback.cc | 2 ++
+ src/hb-ot-shape-normalize.cc | 2 ++
+ src/hb-ot-shape.cc | 3 +++
7 files changed, 26 insertions(+), 4 deletions(-)
commit 2053f369f84676f197ac41ea654a318c48922abd
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Aug 2 16:31:16 2014 -0400
+Date: Sat Aug 2 16:31:16 2014 -0400
Disable 'liga' for vertical text
The reason we turned it on is because Kazuraki uses it. But that's
- not reason enough. Until the OpenType spec gets its act together re
+ not reason enough. Until the OpenType spec gets its act together re
adding design-direction to lookups, this is better user experience.
src/hb-ot-shape.cc | 2 +-
@@ -1652,7 +2374,7 @@ Date: Sat Aug 2 16:31:16 2014 -0400
commit 763e5466c0a03a7c27020e1e2598e488612529a7
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Aug 2 16:17:44 2014 -0400
+Date: Sat Aug 2 16:17:44 2014 -0400
Make it easier to use HB_BUFFER_FLAG_BOT/EOT
@@ -1662,23 +2384,23 @@ Date: Sat Aug 2 16:17:44 2014 -0400
had code like this:
hb_buffer_set_flags (hb_buffer,
- (item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) |
- (item_offset + item_length == paragraph_length
- ?
- HB_BUFFER_FLAG_EOT : 0));
+ (item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) |
+ (item_offset + item_length == paragraph_length
+ ?
+ HB_BUFFER_FLAG_EOT : 0));
hb_buffer_add_utf8 (hb_buffer,
- paragraph_text, paragraph_length,
- item_offset, item_length);
+ paragraph_text, paragraph_length,
+ item_offset, item_length);
After this change such clients can simply say:
hb_buffer_set_flags (hb_buffer,
- HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT);
+ HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT);
hb_buffer_add_utf8 (hb_buffer,
- paragraph_text, paragraph_length,
- item_offset, item_length);
+ paragraph_text, paragraph_length,
+ item_offset, item_length);
Ie, HarfBuzz itself checks whether the segment is at the beginning/end
of the paragraph. Clients that only pass item-at-a-time to HarfBuzz
@@ -1690,19 +2412,19 @@ Date: Sat Aug 2 16:17:44 2014 -0400
src/hb-ot-shape-complex-arabic.cc | 40
+++++++++++++++++++--------------------
- src/hb-ot-shape.cc | 1 +
+ src/hb-ot-shape.cc | 1 +
2 files changed, 20 insertions(+), 21 deletions(-)
commit 0a5ae9336231c4d189e1682e4fd9c9c4552b8bbf
Merge: ac53443 6ab6be3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Aug 2 15:00:34 2014 -0400
+Date: Sat Aug 2 15:00:34 2014 -0400
Merge branch 'win1256'
commit 6ab6be32c5857ce3344021ad2996e80b2a8c8f99
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Aug 2 14:58:38 2014 -0400
+Date: Sat Aug 2 14:58:38 2014 -0400
[arabic/win1256] Remove unused MultipleSubst macros
@@ -1711,7 +2433,7 @@ Date: Sat Aug 2 14:58:38 2014 -0400
commit abfa4252cce1c56c472693dcd8400cd97ededd2f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Aug 1 19:05:33 2014 -0400
+Date: Fri Aug 1 19:05:33 2014 -0400
[arabic/win1256] Really fix lam-alef this time
@@ -1725,7 +2447,7 @@ Date: Fri Aug 1 19:05:33 2014 -0400
commit 55977f2a462b7fa1248eab3787053dc82320d3e5
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Aug 1 16:14:33 2014 -0400
+Date: Fri Aug 1 16:14:33 2014 -0400
[arabic/win1256] Hook up lamMedi lookup
@@ -1740,7 +2462,7 @@ Date: Fri Aug 1 16:14:33 2014 -0400
commit e839e2523e64fd0cf21929f6a45e2facd59c7917
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Aug 1 16:09:31 2014 -0400
+Date: Fri Aug 1 16:09:31 2014 -0400
[arabic/win1256] Fix TEH MARBUTA final form
@@ -1751,7 +2473,7 @@ Date: Fri Aug 1 16:09:31 2014 -0400
commit a2de193220ee2839125594bd1a60b5b66ab4598e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 31 18:21:05 2014 -0400
+Date: Thu Jul 31 18:21:05 2014 -0400
[arabic/win1256] Fix shaping of JEEM, HAH, and KHAH
@@ -1762,7 +2484,7 @@ Date: Thu Jul 31 18:21:05 2014 -0400
commit 1789ccb1dd56af6117eac00e633eff94860ba252
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 31 11:04:00 2014 -0400
+Date: Thu Jul 31 11:04:00 2014 -0400
[arabic/win1256] Remove GCC'ism
@@ -1780,14 +2502,14 @@ Date: Thu Jul 31 11:04:00 2014 -0400
See:
https://github.com/behdad/harfbuzz/commit/a97f537cec209649302899975d76ca2b2661da7a#commitcomment-7218736
- src/hb-ot-shape-complex-arabic-fallback.hh | 4 +-
+ src/hb-ot-shape-complex-arabic-fallback.hh | 4 +-
src/hb-ot-shape-complex-arabic-win1256.hh | 123
+++++++++++++++++------------
2 files changed, 75 insertions(+), 52 deletions(-)
commit f28b1c823db2ad56fed356ef864a7508d23048b8
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jul 30 02:15:44 2014 -0400
+Date: Wed Jul 30 02:15:44 2014 -0400
[arabic] Implement Windows-1256 private shaping
@@ -1796,7 +2518,7 @@ Date: Wed Jul 30 02:15:44 2014 -0400
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139
This is only enabled on Windows platforms, and requires support from
- Uniscribe to work. But for clients that do hook up to Uniscribe, this
+ Uniscribe to work. But for clients that do hook up to Uniscribe, this
fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans
Serif".
@@ -1805,8 +2527,8 @@ Date: Wed Jul 30 02:15:44 2014 -0400
UNTESTED. I might even have broken regular Arabic fallback shaping.
- src/Makefile.am | 1 +
- src/check-includes.sh | 2 +-
+ src/Makefile.am | 1 +
+ src/check-includes.sh | 2 +-
src/hb-ot-shape-complex-arabic-fallback.hh | 125 +++++++++--
src/hb-ot-shape-complex-arabic-win1256.hh | 328
+++++++++++++++++++++++++++++
@@ -1814,7 +2536,7 @@ Date: Wed Jul 30 02:15:44 2014 -0400
commit ac53443f1cea83ed43a4e41a9fdb91902f7fae7b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 31 18:51:37 2014 -0400
+Date: Thu Jul 31 18:51:37 2014 -0400
[hangul] Don't apply 'calt'
@@ -1822,22 +2544,22 @@ Date: Thu Jul 31 18:51:37 2014 -0400
Micro-test added.
- src/hb-ot-shape-complex-hangul.cc | 11
+ src/hb-ot-shape-complex-hangul.cc | 11
++++++++++-
- test/shaping/Makefile.am | 1 +
+ test/shaping/Makefile.am | 1 +
.../sha1sum/757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf | Bin 0 ->
1804 bytes
.../sha1sum/7e14e7883ed152baa158b80e207b66114c823a8b.ttf | Bin 0 ->
1644 bytes
- test/shaping/fonts/sha1sum/MANIFEST | 2 ++
- test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/hangul-jamo.tests | 11
+ test/shaping/fonts/sha1sum/MANIFEST | 2 ++
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/hangul-jamo.tests | 11
+++++++++++
7 files changed, 25 insertions(+), 1 deletion(-)
commit 8292f96b2be173ebceb1b54426c271cfeaecd633
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 31 18:33:11 2014 -0400
+Date: Thu Jul 31 18:33:11 2014 -0400
[test] Fix record-test.sh
@@ -1846,7 +2568,7 @@ Date: Thu Jul 31 18:33:11 2014 -0400
commit 88911e8cc765c26e502503a3a00ac7f17973f3d9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jul 29 19:47:26 2014 -0400
+Date: Tue Jul 29 19:47:26 2014 -0400
Minor
@@ -1855,7 +2577,7 @@ Date: Tue Jul 29 19:47:26 2014 -0400
commit 9e834e29e0b657f0555df1ab9cea79ff7abcf08d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 26 20:34:01 2014 -0400
+Date: Sat Jul 26 20:34:01 2014 -0400
[hebrew] Zero mark advance by GDEF late
@@ -1869,16 +2591,16 @@ Date: Sat Jul 26 20:34:01 2014 -0400
Micro-test added.
- src/hb-ot-shape-complex-hebrew.cc | 2 +-
+ src/hb-ot-shape-complex-hebrew.cc | 2 +-
.../sha1sum/8454d22037f892e76614e1645d066689a0200e61.ttf | Bin 0 ->
6068 bytes
- test/shaping/fonts/sha1sum/MANIFEST | 1 +
- test/shaping/tests/zero-width-marks.tests | 1 +
+ test/shaping/fonts/sha1sum/MANIFEST | 1 +
+ test/shaping/tests/zero-width-marks.tests | 1 +
4 files changed, 3 insertions(+), 1 deletion(-)
commit 6f2d9ba52a6d1e3fc200da1ef0e85ba020fcd0dc
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 26 19:17:44 2014 -0400
+Date: Sat Jul 26 19:17:44 2014 -0400
Add old-Myanmar shaper
@@ -1891,30 +2613,30 @@ Date: Sat Jul 26 19:17:44 2014 -0400
Micro-test added based on Padauk.
- src/hb-ot-shape-complex-myanmar.cc | 18
+ src/hb-ot-shape-complex-myanmar.cc | 18
++++++++++++++++++
- src/hb-ot-shape-complex-private.hh | 5 +++--
- test/shaping/Makefile.am | 1 +
- test/shaping/fonts/sha1sum/MANIFEST | 1 +
+ src/hb-ot-shape-complex-private.hh | 5 +++--
+ test/shaping/Makefile.am | 1 +
+ test/shaping/fonts/sha1sum/MANIFEST | 1 +
.../bb9473d2403488714043bcfb946c9f78b86ad627.ttf | Bin 0 ->
3440 bytes
- test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/zero-width-marks.tests | 1 +
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/zero-width-marks.tests | 1 +
7 files changed, 25 insertions(+), 2 deletions(-)
commit 595d2b96c37de8147489dc5e0ddcc4ab1ad3eea9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 26 18:44:15 2014 -0400
+Date: Sat Jul 26 18:44:15 2014 -0400
Minor
src/hb-ot-shape-complex-indic.cc | 1 +
- src/hb-ot-shape.cc | 2 +-
+ src/hb-ot-shape.cc | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
commit fe6788bc570d77d5b3aafc68efd51ca6b80499b1
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:40:56 2014 -0400
+Date: Fri Jul 25 12:40:56 2014 -0400
Typo
@@ -1923,7 +2645,7 @@ Date: Fri Jul 25 12:40:56 2014 -0400
commit 0de25d4184d2d92b1a2ebb6fa054275aaae4c316
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:35:03 2014 -0400
+Date: Fri Jul 25 12:35:03 2014 -0400
[util] Note CSS compatibility in --help-features
@@ -1932,7 +2654,7 @@ Date: Fri Jul 25 12:35:03 2014 -0400
commit 6e69200a2aadbc6bba35ffb4a058c14286b84f46
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:30:47 2014 -0400
+Date: Fri Jul 25 12:30:47 2014 -0400
Fix snprintf() format
@@ -1944,7 +2666,7 @@ Date: Fri Jul 25 12:30:47 2014 -0400
commit 5c5cdbbdf8be231c433e21b050a6c6991d327b61
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:21:49 2014 -0400
+Date: Fri Jul 25 12:21:49 2014 -0400
Make sure broken feature strings are not partially parsed
@@ -1956,7 +2678,7 @@ Date: Fri Jul 25 12:21:49 2014 -0400
commit a795fe637846e0d9561d2f7cdd84cfafd58b23a7
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:15:33 2014 -0400
+Date: Fri Jul 25 12:15:33 2014 -0400
Allow quotation marks around feature tag in hb_feature_from_string()
@@ -1967,7 +2689,7 @@ Date: Fri Jul 25 12:15:33 2014 -0400
commit 3f6461847412e78bcddc8eba97200f3afcde869a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:04:27 2014 -0400
+Date: Fri Jul 25 12:04:27 2014 -0400
Allow space at the end of feature string with values, eg 'dlig=1 '
@@ -1976,7 +2698,7 @@ Date: Fri Jul 25 12:04:27 2014 -0400
commit f31f7d2259dd8edffc070af55938cb7aa23514c1
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:03:52 2014 -0400
+Date: Fri Jul 25 12:03:52 2014 -0400
Minor
@@ -1985,7 +2707,7 @@ Date: Fri Jul 25 12:03:52 2014 -0400
commit 60cb18a5dea2d30793f89e80995bb729c014864a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 12:01:22 2014 -0400
+Date: Fri Jul 25 12:01:22 2014 -0400
Allow on/off in hb_feature_from_string()
@@ -1996,7 +2718,7 @@ Date: Fri Jul 25 12:01:22 2014 -0400
commit d9e618eca9e01c2eb6db65504af3f73be370a1e7
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 11:56:01 2014 -0400
+Date: Fri Jul 25 11:56:01 2014 -0400
Remove duplicate definition of ISALNUM
@@ -2007,7 +2729,7 @@ Date: Fri Jul 25 11:56:01 2014 -0400
commit 2ee5f665ded86147acedc400153c0b3a90fe07c6
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 11:53:46 2014 -0400
+Date: Fri Jul 25 11:53:46 2014 -0400
Fix parsing of features like "- liga" (with the space)
@@ -2016,7 +2738,7 @@ Date: Fri Jul 25 11:53:46 2014 -0400
commit e15fa7a8cffbe6a67b1048d7b87b7df77d8b1686
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 11:44:35 2014 -0400
+Date: Fri Jul 25 11:44:35 2014 -0400
Do not require the '=' in hb_feature_from_string()
@@ -2027,7 +2749,7 @@ Date: Fri Jul 25 11:44:35 2014 -0400
commit f4fe9baefdb7e0ff9946f88b6f4b55738fa30cdf
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 11:39:55 2014 -0400
+Date: Fri Jul 25 11:39:55 2014 -0400
Reject tags longer than 4 chars in hb_feature_from_string()
@@ -2036,22 +2758,22 @@ Date: Fri Jul 25 11:39:55 2014 -0400
commit 7e8c38954649c0bf2e6051d84ca08dce090ec169
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 25 11:18:11 2014 -0400
+Date: Fri Jul 25 11:18:11 2014 -0400
Minor warnings fixes
Some systems insist on -Wmissing-field-initializers. We have
too many,
- by design. Fix a few easy ones.
+ by design. Fix a few easy ones.
src/hb-open-type-private.hh | 2 +-
src/hb-ot-layout-private.hh | 2 +-
- src/hb-private.hh | 2 +-
+ src/hb-private.hh | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
commit fc0daafab0336b847ac14682e581a8838f36a0bf
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jul 23 16:48:51 2014 -0400
+Date: Wed Jul 23 16:48:51 2014 -0400
[indic] Handle old-spec Malayalam reordering with final Halant
@@ -2059,20 +2781,20 @@ Date: Wed Jul 23 16:48:51 2014 -0400
Micro-tests added.
- src/hb-ot-shape-complex-indic.cc | 28
+ src/hb-ot-shape-complex-indic.cc | 28
+++++++++++++++++----
- test/shaping/Makefile.am | 1 +
+ test/shaping/Makefile.am | 1 +
.../270b89df543a7e48e206a2d830c0e10e5265c630.ttf | Bin 0 -> 3428 bytes
.../57a9d9f83020155cbb1d2be1f43d82388cbecc88.ttf | Bin 0 -> 2272 bytes
- test/shaping/fonts/sha1sum/MANIFEST | 2 ++
- test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/indic-old-spec.tests | 2 ++
- .../indic/script-malayalam/misc/misc.txt | 1 +
+ test/shaping/fonts/sha1sum/MANIFEST | 2 ++
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/indic-old-spec.tests | 2 ++
+ .../indic/script-malayalam/misc/misc.txt | 1 +
8 files changed, 30 insertions(+), 5 deletions(-)
commit d6d349d17898529ecdf8217a54987a3e9f81ce05
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jul 23 11:38:49 2014 -0400
+Date: Wed Jul 23 11:38:49 2014 -0400
Give CC to gir-scanner
@@ -2084,17 +2806,17 @@ Date: Wed Jul 23 11:38:49 2014 -0400
commit 8c1bdb46facb79cfca5ebfea9a7e467b40337f47
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jul 22 17:56:43 2014 -0400
+Date: Tue Jul 22 17:56:43 2014 -0400
0.9.33
- NEWS | 10 ++++++++++
+ NEWS | 10 ++++++++++
configure.ac | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
commit d218bdb26b226fbf68331eb586b24460c061313d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jul 22 18:01:46 2014 -0400
+Date: Tue Jul 22 18:01:46 2014 -0400
Fix test runner under Windows
@@ -2103,7 +2825,7 @@ Date: Tue Jul 22 18:01:46 2014 -0400
commit 3f310dc0cae9015c45ba642b9b83d5695c807aad
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jul 22 16:26:27 2014 -0400
+Date: Tue Jul 22 16:26:27 2014 -0400
Disallow changing settings on immutable face
@@ -2116,7 +2838,7 @@ Date: Tue Jul 22 16:26:27 2014 -0400
commit 0fc0a1022854324261fea8893678a3e9fd9443eb
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jul 21 11:12:54 2014 -0400
+Date: Mon Jul 21 11:12:54 2014 -0400
[win] Fix Cygwin build
@@ -2127,7 +2849,7 @@ Date: Mon Jul 21 11:12:54 2014 -0400
commit 1132a7dd0ecf1c425078e39e5471330bace42659
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Jul 20 01:17:40 2014 -0400
+Date: Sun Jul 20 01:17:40 2014 -0400
Add HB_TAG_MAX_SIGNED / _HB_SCRIPT_MAX_VALUE_SIGNED
@@ -2138,7 +2860,7 @@ Date: Sun Jul 20 01:17:40 2014 -0400
commit df99976398a53521e0228541055dcaee8f5ba87f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 19 17:31:23 2014 -0400
+Date: Sat Jul 19 17:31:23 2014 -0400
[gobject] Skip _HB_SCRIPT_MAX_VALUE
@@ -2149,7 +2871,7 @@ Date: Sat Jul 19 17:31:23 2014 -0400
commit f1a8d50a87edfb8147aa1bec732ed7ccbfef2877
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 19 16:52:32 2014 -0400
+Date: Sat Jul 19 16:52:32 2014 -0400
[win] Don't define visibility attribtue under Cygwin
@@ -2158,7 +2880,7 @@ Date: Sat Jul 19 16:52:32 2014 -0400
commit 9c77027d645142794c3ff1590a96bb151c3f2e91
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 19 16:37:22 2014 -0400
+Date: Sat Jul 19 16:37:22 2014 -0400
[win] Turn STRICT on for including windows.h
@@ -2167,20 +2889,20 @@ Date: Sat Jul 19 16:37:22 2014 -0400
commit db308280488c2ee11ba865a9922eb6a0c1abeef3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 19 16:32:04 2014 -0400
+Date: Sat Jul 19 16:32:04 2014 -0400
[win] Consolidate windows.h include tips and tricks
src/hb-atomic-private.hh | 4 ----
src/hb-mutex-private.hh | 1 -
- src/hb-private.hh | 12 ++++++++++++
- src/hb-uniscribe.cc | 3 ---
- src/hb-uniscribe.h | 3 ---
+ src/hb-private.hh | 12 ++++++++++++
+ src/hb-uniscribe.cc | 3 ---
+ src/hb-uniscribe.h | 3 ---
5 files changed, 12 insertions(+), 11 deletions(-)
commit f26d59d4684be3419c976d781b6dbc956248e3bb
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Jul 19 16:10:21 2014 -0400
+Date: Sat Jul 19 16:10:21 2014 -0400
More fixing MemoryBarrier() on Mingw32
@@ -2193,37 +2915,37 @@ Date: Sat Jul 19 16:10:21 2014 -0400
commit 00a57eb4b50fd894dc68c6525a5bbebf0ebc30e4
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 18 14:42:50 2014 -0400
+Date: Fri Jul 18 14:42:50 2014 -0400
[test] Remove unused micro-font
- .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 81968 ->
+ .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 81968 ->
0 bytes
- test/shaping/fonts/sha1sum/MANIFEST | 1 -
+ test/shaping/fonts/sha1sum/MANIFEST | 1 -
2 files changed, 1 deletion(-)
commit ed29b15f5d0d9e7b40143926ca7d40bf645f67e9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jul 18 14:37:49 2014 -0400
+Date: Fri Jul 18 14:37:49 2014 -0400
[test] Add more Mongolian variation selector tests
From
https://code.google.com/p/chromium/issues/detail?id=393896
- .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 0 ->
+ .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 0 ->
81968 bytes
- test/shaping/fonts/sha1sum/MANIFEST | 2 ++
- .../bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 0 ->
+ test/shaping/fonts/sha1sum/MANIFEST | 2 ++
+ .../bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 0 ->
74856 bytes
- test/shaping/tests/mongolian-variation-selector.tests | 1 +
- .../shaper-arabic/script-mongolian/misc/MANIFEST | 1 +
- .../script-mongolian/misc/variation-selectors.txt | 8 ++++++++
+ test/shaping/tests/mongolian-variation-selector.tests | 1 +
+ .../shaper-arabic/script-mongolian/misc/MANIFEST | 1 +
+ .../script-mongolian/misc/variation-selectors.txt | 8 ++++++++
6 files changed, 12 insertions(+)
commit 385cf37cf084198e3aedb4354a7b025938a9f11b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 18:22:07 2014 -0400
+Date: Thu Jul 17 18:22:07 2014 -0400
Fix hb_in_range() unused-var warning on Windows
@@ -2232,7 +2954,7 @@ Date: Thu Jul 17 18:22:07 2014 -0400
commit e3b42f1af409c073b819bfc696024ccb1f1da63f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 17:13:54 2014 -0400
+Date: Thu Jul 17 17:13:54 2014 -0400
[arabic] Disable 'cswh' again
@@ -2243,17 +2965,17 @@ Date: Thu Jul 17 17:13:54 2014 -0400
commit 66f30915b185727a0041c998641edb550eb8a7fc
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 16:05:47 2014 -0400
+Date: Thu Jul 17 16:05:47 2014 -0400
0.9.32
- NEWS | 12 ++++++++++++
+ NEWS | 12 ++++++++++++
configure.ac | 2 +-
2 files changed, 13 insertions(+), 1 deletion(-)
commit 82f4d9d53f348f41b14b877c1ac77c0372c49caa
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 15:57:37 2014 -0400
+Date: Thu Jul 17 15:57:37 2014 -0400
[arabic] Add note re disabled 'cswh'
@@ -2262,7 +2984,7 @@ Date: Thu Jul 17 15:57:37 2014 -0400
commit 615d00ea252739da57edbd980ff27e573f88ee7e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 13:36:09 2014 -0400
+Date: Thu Jul 17 13:36:09 2014 -0400
[arabic] Apply init/medi/isol/fini/... in separate stages
@@ -2271,20 +2993,20 @@ Date: Thu Jul 17 13:36:09 2014 -0400
Micro-tests for Arabic and Mongolian added for the latter.
- src/hb-ot-shape-complex-arabic.cc | 56
+ src/hb-ot-shape-complex-arabic.cc | 56
+++++++++++++--------
- test/shaping/Makefile.am | 2 +
+ test/shaping/Makefile.am | 2 +
.../813c2f8e5512187fd982417a7fb4286728e6f4a8.ttf | Bin 0 -> 3428 bytes
.../8a9fea2a7384f2116e5b84a9b31f83be7850ce21.ttf | Bin 0 -> 3428 bytes
- test/shaping/fonts/sha1sum/MANIFEST | 3 ++
+ test/shaping/fonts/sha1sum/MANIFEST | 3 ++
.../a919b33197965846f21074b24e30250d67277bce.ttf | Bin 0 -> 12560 bytes
- test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/arabic-feature-order.tests | 3 ++
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/arabic-feature-order.tests | 3 ++
8 files changed, 43 insertions(+), 22 deletions(-)
commit d21e997035b16e9807dfb29c3605abb93f92f1ee
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 15:27:46 2014 -0400
+Date: Thu Jul 17 15:27:46 2014 -0400
[test] Make record_test understand cmdline args to hb-shape
@@ -2293,23 +3015,23 @@ Date: Thu Jul 17 15:27:46 2014 -0400
commit 7cd33f230441093dbfb1fec48f8c580ee8d9ef71
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 14:22:11 2014 -0400
+Date: Thu Jul 17 14:22:11 2014 -0400
Micro optimization
- src/hb-fallback-shape.cc | 36
+ src/hb-fallback-shape.cc | 36
+++++++++++++++++++-----------------
src/hb-ot-shape-complex-arabic.cc | 19 +++++++++++--------
src/hb-ot-shape-complex-indic.cc | 15 ++++++++++-----
src/hb-ot-shape-complex-myanmar.cc | 7 +++++--
src/hb-ot-shape-complex-sea.cc | 7 +++++--
- src/hb-ot-shape-fallback.cc | 30 ++++++++++++++++--------------
- src/hb-ot-shape.cc | 18 ++++++++++++------
+ src/hb-ot-shape-fallback.cc | 30 ++++++++++++++++--------------
+ src/hb-ot-shape.cc | 18 ++++++++++++------
7 files changed, 78 insertions(+), 54 deletions(-)
commit 164c13d73f67fdddba28e6409d76b4903e8ffab3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 14:16:38 2014 -0400
+Date: Thu Jul 17 14:16:38 2014 -0400
Another try to fix Mongolian free variation selectors
@@ -2321,23 +3043,23 @@ Date: Thu Jul 17 14:16:38 2014 -0400
https://code.google.com/p/chromium/issues/detail?id=393896
- src/hb-ot-shape-complex-arabic.cc | 24
+ src/hb-ot-shape-complex-arabic.cc | 24
+++++++++++++++------
- src/hb-unicode-private.hh | 3 ++-
- test/shaping/fonts/sha1sum/MANIFEST | 1 +
+ src/hb-unicode-private.hh | 3 ++-
+ test/shaping/fonts/sha1sum/MANIFEST | 1 +
.../ef86fe710cfea877bbe0dbb6946a1f88d0661031.ttf | Bin 0 -> 2748 bytes
- .../tests/mongolian-variation-selector.tests | 1 +
+ .../tests/mongolian-variation-selector.tests | 1 +
5 files changed, 22 insertions(+), 7 deletions(-)
commit 5209c505061130854a2bfea8849928ade3ee92f3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jul 17 12:23:44 2014 -0400
+Date: Thu Jul 17 12:23:44 2014 -0400
Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode
codepoints"
We now handle U+FFFD replacement in hb_buffer_add_utf*(). Any other
- manipulation can happen in user callbacks. No need for this.
+ manipulation can happen in user callbacks. No need for this.
https://github.com/behdad/harfbuzz/commit/efe74214bbb68eaa3d7621e73869b5d58210107e#commitcomment-7039404
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/Makefile.am
index 58afd9b923c..47aeb97768e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/Makefile.am
@@ -19,6 +19,7 @@ MAINTAINERCLEANFILES = \
$(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
$(srcdir)/INSTALL \
$(srcdir)/ChangeLog \
+ $(srcdir)/gtk-doc.make \
$(NULL)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/NEWS b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/NEWS
index 3a33bdf5cb5..dbbfbba195f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/NEWS
@@ -1,3 +1,13 @@
+Overview of changes leading to 0.9.39
+Wednesday, March 4, 2015
+=====================================
+
+- Critical hb-coretext fixes.
+- Optimizations and refactoring; no functional change
+ expected.
+- Misc build fixes.
+
+
Overview of changes leading to 0.9.38
Friday, January 23, 2015
=====================================
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/README b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/README
index d34bc74f997..d34bc74f997 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/README
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/README
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/README.python b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/README.python
index eabdf5bbb56..eabdf5bbb56 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/README.python
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/README.python
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/THANKS b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/THANKS
index 940cfde5c39..940cfde5c39 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/THANKS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/THANKS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/TODO b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/TODO
index e1aa39c4c01..e1aa39c4c01 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/TODO
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/TODO
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/autogen.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/autogen.sh
index a267f297b06..a81d2aacd09 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/autogen.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/autogen.sh
@@ -19,17 +19,22 @@ which pkg-config || {
exit 1
}
+echo -n "checking for libtoolize... "
+which libtoolize || {
+ echo "*** No libtoolize (libtool) found, please install it ***"
+ exit 1
+}
echo -n "checking for gtkdocize... "
if which gtkdocize ; then
gtkdocize --copy || exit 1
else
- echo "*** No gtkdocize found, skipping documentation ***"
+ echo "*** No gtkdocize (gtk-doc) found, skipping documentation ***"
echo "EXTRA_DIST = " > gtk-doc.make
fi
echo -n "checking for autoreconf... "
which autoreconf || {
- echo "*** No autoreconf found, please install it ***"
+ echo "*** No autoreconf (autoconf) found, please install it ***"
exit 1
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/config.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/config.h.in
index 35395c36138..35395c36138 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/config.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/config.h.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/configure.ac
index 3e42d95b4b9..166a121e912 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/configure.ac
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [0.9.38],
+ [0.9.39],
[http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
[harfbuzz],
[http://harfbuzz.org/])
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/gtk-doc.make b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/gtk-doc.make
index e7916563d75..e7916563d75 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/gtk-doc.make
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/gtk-doc.make
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/harfbuzz.doap b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/harfbuzz.doap
index d2896ebefa8..d2896ebefa8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/harfbuzz.doap
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/harfbuzz.doap
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/Makefile.am
index c99967f6904..c99967f6904 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/Makefile.am
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-c-linkage-decls.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-c-linkage-decls.sh
index b10310f5384..b10310f5384 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-c-linkage-decls.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-c-linkage-decls.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-defs.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-defs.sh
index 65a24670e48..65a24670e48 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-defs.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-defs.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-header-guards.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-header-guards.sh
index 9a3302c7f87..9a3302c7f87 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-header-guards.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-header-guards.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-includes.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-includes.sh
index 902f2357e2a..902f2357e2a 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-includes.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-includes.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-libstdc++.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-libstdc++.sh
index 27deb42dc97..27deb42dc97 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-libstdc++.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-libstdc++.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-static-inits.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-static-inits.sh
index 1446fa73405..1446fa73405 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-static-inits.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-static-inits.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-symbols.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-symbols.sh
index b2bf43fcea5..b2bf43fcea5 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/check-symbols.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/check-symbols.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/gen-arabic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/gen-arabic-table.py
index 308435f991e..308435f991e 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/gen-arabic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/gen-arabic-table.py
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/gen-indic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/gen-indic-table.py
index f5716bda789..f5716bda789 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/gen-indic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/gen-indic-table.py
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz-gobject.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz-gobject.pc.in
index 70083601901..70083601901 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz-gobject.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz-gobject.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz-icu.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz-icu.pc.in
index 949869a3563..949869a3563 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz-icu.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz-icu.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz.pc.in
index 7f27bbbdef0..7f27bbbdef0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/harfbuzz.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/harfbuzz.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-atomic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-atomic-private.hh
index e6738b7d9f6..e6738b7d9f6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-atomic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-atomic-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-blob.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-blob.cc
index 8759a252a57..8759a252a57 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-blob.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-blob.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-blob.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-blob.h
index b2419abfd2a..b2419abfd2a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-blob.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-blob.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-json.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-json.hh
index 3f626bda40d..3f626bda40d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-json.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-json.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-json.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-json.rl
index 91b350f5ac0..91b350f5ac0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-json.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-json.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-text.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-text.hh
index 7a46ab278be..7a46ab278be 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-text.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-text.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-text.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-text.rl
index 8856580fbe3..8856580fbe3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-deserialize-text.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-deserialize-text.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-private.hh
index 069f9255811..069f9255811 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-serialize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-serialize.cc
index 406d69db758..406d69db758 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer-serialize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer-serialize.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer.cc
index 7bf232d7603..942177cbd05 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer.cc
@@ -454,7 +454,7 @@ hb_buffer_t::reverse_range (unsigned int start,
info[j] = t;
}
- if (pos) {
+ if (have_positions) {
for (i = start, j = end - 1; i < j; i++, j--) {
hb_glyph_position_t t;
@@ -1328,15 +1328,15 @@ hb_buffer_guess_segment_properties (hb_buffer_t *buffer)
buffer->guess_segment_properties ();
}
-template <bool validate, typename T>
+template <typename utf_t>
static inline void
hb_buffer_add_utf (hb_buffer_t *buffer,
- const T *text,
+ const typename utf_t::codepoint_t *text,
int text_length,
unsigned int item_offset,
int item_length)
{
- typedef hb_utf_t<T, true> utf_t;
+ typedef typename utf_t::codepoint_t T;
const hb_codepoint_t replacement = buffer->replacement;
assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE ||
@@ -1416,7 +1416,7 @@ hb_buffer_add_utf8 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
- hb_buffer_add_utf<true> (buffer, (const uint8_t *) text, text_length, item_offset, item_length);
+ hb_buffer_add_utf<hb_utf8_t> (buffer, (const uint8_t *) text, text_length, item_offset, item_length);
}
/**
@@ -1438,7 +1438,7 @@ hb_buffer_add_utf16 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
- hb_buffer_add_utf<true> (buffer, text, text_length, item_offset, item_length);
+ hb_buffer_add_utf<hb_utf16_t> (buffer, text, text_length, item_offset, item_length);
}
/**
@@ -1460,7 +1460,29 @@ hb_buffer_add_utf32 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
- hb_buffer_add_utf<true> (buffer, text, text_length, item_offset, item_length);
+ hb_buffer_add_utf<hb_utf32_t<> > (buffer, text, text_length, item_offset, item_length);
+}
+
+/**
+ * hb_buffer_add_latin1:
+ * @buffer: a buffer.
+ * @text: (array length=text_length) (element-type uint8_t):
+ * @text_length:
+ * @item_offset:
+ * @item_length:
+ *
+ *
+ *
+ * Since: 1.0
+ **/
+void
+hb_buffer_add_latin1 (hb_buffer_t *buffer,
+ const uint8_t *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length)
+{
+ hb_buffer_add_utf<hb_latin1_t> (buffer, text, text_length, item_offset, item_length);
}
/**
@@ -1482,7 +1504,7 @@ hb_buffer_add_codepoints (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
- hb_buffer_add_utf<false> (buffer, text, text_length, item_offset, item_length);
+ hb_buffer_add_utf<hb_utf32_t<false> > (buffer, text, text_length, item_offset, item_length);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer.h
index 7b0c9204688..e5b46d867a4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-buffer.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-buffer.h
@@ -253,6 +253,14 @@ hb_buffer_add_utf32 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length);
+/* Allows only access to first 256 Unicode codepoints. */
+void
+hb_buffer_add_latin1 (hb_buffer_t *buffer,
+ const uint8_t *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length);
+
/* Like add_utf32 but does NOT check for invalid Unicode codepoints. */
void
hb_buffer_add_codepoints (hb_buffer_t *buffer,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-cache-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-cache-private.hh
index 19b70b7e395..19b70b7e395 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-cache-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-cache-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-common.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-common.cc
index 8837cefbf7d..05a1f9ce19d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-common.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-common.cc
@@ -265,6 +265,7 @@ retry:
*lang = key;
if (!hb_atomic_ptr_cmpexch (&langs, first_lang, lang)) {
+ lang->finish ();
free (lang);
goto retry;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-common.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-common.h
index b6ce3f724de..b6ce3f724de 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-common.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-common.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-coretext.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-coretext.cc
index 16e069d4948..4a451752879 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-coretext.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-coretext.cc
@@ -787,6 +787,7 @@ retry:
buffer->len = 0;
uint32_t status_and = ~0, status_or = 0;
+ double advances_so_far = 0;
const CFRange range_all = CFRangeMake (0, 0);
@@ -797,6 +798,10 @@ retry:
status_or |= run_status;
status_and &= run_status;
DEBUG_MSG (CORETEXT, run, "CTRunStatus: %x", run_status);
+ double run_advance = CTRunGetTypographicBounds (run, range_all, NULL, NULL, NULL);
+ if (HB_DIRECTION_IS_VERTICAL (buffer->props.direction))
+ run_advance = -run_advance;
+ DEBUG_MSG (CORETEXT, run, "Run advance: %g", run_advance);
/* CoreText does automatic font fallback (AKA "cascading") for characters
* not supported by the requested font, and provides no way to turn it off,
@@ -892,6 +897,8 @@ retry:
* for this one. */
continue;
}
+ if (buffer->unicode->is_default_ignorable (ch))
+ continue;
info->codepoint = notdef;
info->cluster = log_clusters[j];
@@ -905,6 +912,7 @@ retry:
}
if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction))
buffer->reverse_range (old_len, buffer->len);
+ advances_so_far += run_advance;
continue;
}
}
@@ -934,7 +942,7 @@ retry:
scratch_size = scratch_size_saved; \
scratch = scratch_saved;
- {
+ { /* Setup glyphs */
SCRATCH_SAVE();
const CGGlyph* glyphs = USE_PTR ? CTRunGetGlyphsPtr (run) : NULL;
if (!glyphs) {
@@ -958,6 +966,11 @@ retry:
SCRATCH_RESTORE();
}
{
+ /* Setup positions.
+ * Note that CoreText does not return advances for glyphs. As such,
+ * for all but last glyph, we use the delta position to next glyph as
+ * advance (in the advance direction only), and for last glyph we set
+ * whatever is needed to make the whole run's advance add up. */
SCRATCH_SAVE();
const CGPoint* positions = USE_PTR ? CTRunGetPositionsPtr (run) : NULL;
if (!positions) {
@@ -965,34 +978,42 @@ retry:
CTRunGetPositions (run, range_all, position_buf);
positions = position_buf;
}
- double run_advance = CTRunGetTypographicBounds (run, range_all, NULL, NULL, NULL);
- DEBUG_MSG (CORETEXT, run, "Run advance: %g", run_advance);
hb_glyph_info_t *info = run_info;
CGFloat x_mult = font_data->x_mult, y_mult = font_data->y_mult;
if (HB_DIRECTION_IS_HORIZONTAL (buffer->props.direction))
{
+ hb_position_t x_offset = (positions[0].x - advances_so_far) * x_mult;
for (unsigned int j = 0; j < num_glyphs; j++)
{
- double advance = (j + 1 < num_glyphs ? positions[j + 1].x : positions[0].x + run_advance) - positions[j].x;
+ double advance;
+ if (likely (j + 1 < num_glyphs))
+ advance = positions[j + 1].x - positions[j].x;
+ else /* last glyph */
+ advance = run_advance - (positions[j].x - positions[0].x);
info->mask = advance * x_mult;
- info->var1.u32 = positions[0].x * x_mult; /* Yes, zero. */
+ info->var1.u32 = x_offset;
info->var2.u32 = positions[j].y * y_mult;
info++;
}
}
else
{
- run_advance = -run_advance;
+ hb_position_t y_offset = (positions[0].y - advances_so_far) * y_mult;
for (unsigned int j = 0; j < num_glyphs; j++)
{
- double advance = (j + 1 < num_glyphs ? positions[j + 1].y : positions[0].y + run_advance) - positions[j].y;
+ double advance;
+ if (likely (j + 1 < num_glyphs))
+ advance = positions[j + 1].y - positions[j].y;
+ else /* last glyph */
+ advance = run_advance - (positions[j].y - positions[0].y);
info->mask = advance * y_mult;
info->var1.u32 = positions[j].x * x_mult;
- info->var2.u32 = positions[0].y * y_mult; /* Yes, zero. */
+ info->var2.u32 = y_offset;
info++;
}
}
SCRATCH_RESTORE();
+ advances_so_far += run_advance;
}
#undef SCRATCH_RESTORE
#undef SCRATCH_SAVE
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-coretext.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-coretext.h
index 25267bc9784..25267bc9784 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-coretext.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-coretext.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-deprecated.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-deprecated.h
index 30ae4b1caf7..30ae4b1caf7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-deprecated.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-deprecated.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face-private.hh
index c4266fff4f0..c4266fff4f0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face.cc
index 9348af7bf8e..9348af7bf8e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face.h
index f682c468de5..f682c468de5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-face.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-face.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-fallback-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-fallback-shape.cc
index 9d061a9e845..9d061a9e845 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-fallback-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-fallback-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font-private.hh
index 33bbf7143a2..33bbf7143a2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font.cc
index 4364ca72fb0..4364ca72fb0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font.h
index 7273db43eda..7273db43eda 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-font.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-font.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ft.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ft.cc
index f57f566f6f9..322f93a8efc 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ft.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ft.cc
@@ -118,6 +118,9 @@ hb_ft_get_glyph_v_advance (hb_font_t *font HB_UNUSED,
if (unlikely (FT_Get_Advance (ft_face, glyph, load_flags, &v)))
return 0;
+ if (font->y_scale < 0)
+ v = -v;
+
/* Note: FreeType's vertical metrics grows downward while other FreeType coordinates
* have a Y growing upward. Hence the extra negation. */
return (-v + (1<<9)) >> 10;
@@ -154,6 +157,11 @@ hb_ft_get_glyph_v_origin (hb_font_t *font HB_UNUSED,
*x = ft_face->glyph->metrics.horiBearingX - ft_face->glyph->metrics.vertBearingX;
*y = ft_face->glyph->metrics.horiBearingY - (-ft_face->glyph->metrics.vertBearingY);
+ if (font->x_scale < 0)
+ *x = -*x;
+ if (font->y_scale < 0)
+ *y = -*y;
+
return true;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ft.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ft.h
index 92f4b361441..92f4b361441 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ft.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ft.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-glib.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-glib.cc
index 61dff5e3d6f..61dff5e3d6f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-glib.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-glib.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-glib.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-glib.h
index 1a8f42ea529..1a8f42ea529 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-glib.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-glib.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-enums.cc.tmpl b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-enums.cc.tmpl
index ca458a3846c..ca458a3846c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-enums.cc.tmpl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-enums.cc.tmpl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-enums.h.tmpl b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-enums.h.tmpl
index 6ecda06c2a6..6ecda06c2a6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-enums.h.tmpl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-enums.h.tmpl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-structs.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-structs.cc
index 2451b66291b..2451b66291b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-structs.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-structs.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-structs.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-structs.h
index 4a88d569e8d..4a88d569e8d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject-structs.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject-structs.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject.h
index ea1bd25df82..ea1bd25df82 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-gobject.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-gobject.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-graphite2.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-graphite2.cc
index 807c3308771..807c3308771 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-graphite2.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-graphite2.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-graphite2.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-graphite2.h
index 3eae54acbd8..3eae54acbd8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-graphite2.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-graphite2.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-icu.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-icu.cc
index 24cec9d7266..24cec9d7266 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-icu.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-icu.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-icu.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-icu.h
index f2f35f0f2ce..f2f35f0f2ce 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-icu.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-icu.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-mutex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-mutex-private.hh
index 62812019585..a8ea39ccfd9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-mutex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-mutex-private.hh
@@ -47,7 +47,11 @@
#include <windows.h>
typedef CRITICAL_SECTION hb_mutex_impl_t;
#define HB_MUTEX_IMPL_INIT {0}
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
+#define hb_mutex_impl_init(M) InitializeCriticalSectionEx (M, 0, 0)
+#else
#define hb_mutex_impl_init(M) InitializeCriticalSection (M)
+#endif
#define hb_mutex_impl_lock(M) EnterCriticalSection (M)
#define hb_mutex_impl_unlock(M) LeaveCriticalSection (M)
#define hb_mutex_impl_finish(M) DeleteCriticalSection (M)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-object-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-object-private.hh
index 7bd0f1624b5..7bd0f1624b5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-object-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-object-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-open-file-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-open-file-private.hh
index 7500c32f156..178bc7ccb85 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-open-file-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-open-file-private.hh
@@ -53,7 +53,8 @@ struct TTCHeader;
typedef struct TableRecord
{
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -102,7 +103,8 @@ typedef struct OffsetTable
}
public:
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && c->check_array (tables, TableRecord::static_size, numTables));
}
@@ -130,7 +132,8 @@ struct TTCHeaderVersion1
inline unsigned int get_face_count (void) const { return table.len; }
inline const OpenTypeFontFace& get_face (unsigned int i) const { return this+table[i]; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (table.sanitize (c, this));
}
@@ -169,7 +172,8 @@ struct TTCHeader
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!u.header.version.sanitize (c))) return TRACE_RETURN (false);
switch (u.header.version.major) {
@@ -233,7 +237,8 @@ struct OpenTypeFontFile
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!u.tag.sanitize (c))) return TRACE_RETURN (false);
switch (u.tag) {
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-open-type-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-open-type-private.hh
index 477d9e28b2c..75a0f568d11 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-open-type-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-open-type-private.hh
@@ -179,10 +179,13 @@ struct hb_sanitize_context_t
inline const char *get_name (void) { return "SANITIZE"; }
static const unsigned int max_debug_depth = HB_DEBUG_SANITIZE;
typedef bool return_t;
+ template <typename T, typename F>
+ inline bool may_dispatch (const T *obj, const F *format)
+ { return format->sanitize (this); }
template <typename T>
inline return_t dispatch (const T &obj) { return obj.sanitize (this); }
static return_t default_return_value (void) { return true; }
- bool stop_sublookup_iteration (const return_t r HB_UNUSED) const { return false; }
+ bool stop_sublookup_iteration (const return_t r) const { return !r; }
inline void init (hb_blob_t *b)
{
@@ -270,9 +273,9 @@ struct hb_sanitize_context_t
}
template <typename Type, typename ValueType>
- inline bool try_set (Type *obj, const ValueType &v) {
+ inline bool try_set (const Type *obj, const ValueType &v) {
if (this->may_edit (obj, obj->static_size)) {
- obj->set (v);
+ const_cast<Type *> (obj)->set (v);
return true;
}
return false;
@@ -546,12 +549,6 @@ struct BEInt<Type, 2>
return (v[0] << 8)
+ (v[1] );
}
- inline bool operator == (const BEInt<Type, 2>& o) const
- {
- return v[0] == o.v[0]
- && v[1] == o.v[1];
- }
- inline bool operator != (const BEInt<Type, 2>& o) const { return !(*this == o); }
private: uint8_t v[2];
};
template <typename Type>
@@ -570,13 +567,6 @@ struct BEInt<Type, 3>
+ (v[1] << 8)
+ (v[2] );
}
- inline bool operator == (const BEInt<Type, 3>& o) const
- {
- return v[0] == o.v[0]
- && v[1] == o.v[1]
- && v[2] == o.v[2];
- }
- inline bool operator != (const BEInt<Type, 3>& o) const { return !(*this == o); }
private: uint8_t v[3];
};
template <typename Type>
@@ -597,14 +587,6 @@ struct BEInt<Type, 4>
+ (v[2] << 8)
+ (v[3] );
}
- inline bool operator == (const BEInt<Type, 4>& o) const
- {
- return v[0] == o.v[0]
- && v[1] == o.v[1]
- && v[2] == o.v[2]
- && v[3] == o.v[3];
- }
- inline bool operator != (const BEInt<Type, 4>& o) const { return !(*this == o); }
private: uint8_t v[4];
};
@@ -614,12 +596,19 @@ struct IntType
{
inline void set (Type i) { v.set (i); }
inline operator Type(void) const { return v; }
- inline bool operator == (const IntType<Type,Size> &o) const { return v == o.v; }
- inline bool operator != (const IntType<Type,Size> &o) const { return v != o.v; }
+ inline bool operator == (const IntType<Type,Size> &o) const { return (Type) v == (Type) o.v; }
+ inline bool operator != (const IntType<Type,Size> &o) const { return !(*this == o); }
static inline int cmp (const IntType<Type,Size> *a, const IntType<Type,Size> *b) { return b->cmp (*a); }
- inline int cmp (IntType<Type,Size> va) const { Type a = va; Type b = v; return a < b ? -1 : a == b ? 0 : +1; }
- inline int cmp (Type a) const { Type b = v; return a < b ? -1 : a == b ? 0 : +1; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline int cmp (Type a) const
+ {
+ Type b = v;
+ if (sizeof (Type) < sizeof (int))
+ return (int) a - (int) b;
+ else
+ return a < b ? -1 : a == b ? 0 : +1;
+ }
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (likely (c->check_struct (this)));
}
@@ -646,7 +635,8 @@ typedef USHORT UFWORD;
* 1904. The value is represented as a signed 64-bit integer. */
struct LONGDATETIME
{
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (likely (c->check_struct (this)));
}
@@ -670,7 +660,10 @@ struct Tag : ULONG
DEFINE_NULL_DATA (Tag, " ");
/* Glyph index number, same as uint16 (length = 16 bits) */
-typedef USHORT GlyphID;
+struct GlyphID : USHORT {
+ static inline int cmp (const GlyphID *a, const GlyphID *b) { return b->USHORT::cmp (*a); }
+ inline int cmp (hb_codepoint_t a) const { return (int) a - (int) *this; }
+};
/* Script/language-system/feature index */
struct Index : USHORT {
@@ -719,7 +712,8 @@ struct FixedVersion
{
inline uint32_t to_int (void) const { return (major << 16) + minor; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -747,33 +741,35 @@ struct OffsetTo : Offset<OffsetType>
return StructAtOffset<Type> (base, offset);
}
- inline Type& serialize (hb_serialize_context_t *c, void *base)
+ inline Type& serialize (hb_serialize_context_t *c, const void *base)
{
Type *t = c->start_embed<Type> ();
this->set ((char *) t - (char *) base); /* TODO(serialize) Overflow? */
return *t;
}
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!c->check_struct (this))) return TRACE_RETURN (false);
unsigned int offset = *this;
if (unlikely (!offset)) return TRACE_RETURN (true);
- Type &obj = StructAtOffset<Type> (base, offset);
+ const Type &obj = StructAtOffset<Type> (base, offset);
return TRACE_RETURN (likely (obj.sanitize (c)) || neuter (c));
}
template <typename T>
- inline bool sanitize (hb_sanitize_context_t *c, void *base, T user_data) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base, T user_data) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!c->check_struct (this))) return TRACE_RETURN (false);
unsigned int offset = *this;
if (unlikely (!offset)) return TRACE_RETURN (true);
- Type &obj = StructAtOffset<Type> (base, offset);
+ const Type &obj = StructAtOffset<Type> (base, offset);
return TRACE_RETURN (likely (obj.sanitize (c, user_data)) || neuter (c));
}
/* Set the offset to Null */
- inline bool neuter (hb_sanitize_context_t *c) {
+ inline bool neuter (hb_sanitize_context_t *c) const {
return c->try_set (this, 0);
}
DEFINE_SIZE_STATIC (sizeof(OffsetType));
@@ -838,7 +834,8 @@ struct ArrayOf
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false);
@@ -853,7 +850,8 @@ struct ArrayOf
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false);
unsigned int count = len;
@@ -863,7 +861,8 @@ struct ArrayOf
return TRACE_RETURN (true);
}
template <typename T>
- inline bool sanitize (hb_sanitize_context_t *c, void *base, T user_data) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base, T user_data) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false);
unsigned int count = len;
@@ -884,7 +883,8 @@ struct ArrayOf
}
private:
- inline bool sanitize_shallow (hb_sanitize_context_t *c) {
+ inline bool sanitize_shallow (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && c->check_array (this, Type::static_size, len));
}
@@ -910,12 +910,14 @@ struct OffsetListOf : OffsetArrayOf<Type>
return this+this->array[i];
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (OffsetArrayOf<Type>::sanitize (c, this));
}
template <typename T>
- inline bool sanitize (hb_sanitize_context_t *c, T user_data) {
+ inline bool sanitize (hb_sanitize_context_t *c, T user_data) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (OffsetArrayOf<Type>::sanitize (c, this, user_data));
}
@@ -949,12 +951,14 @@ struct HeadlessArrayOf
return TRACE_RETURN (true);
}
- inline bool sanitize_shallow (hb_sanitize_context_t *c) {
+ inline bool sanitize_shallow (hb_sanitize_context_t *c) const
+ {
return c->check_struct (this)
&& c->check_array (this, Type::static_size, len);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-cmap-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-cmap-table.hh
index d53141157d0..04823125538 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-cmap-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-cmap-table.hh
@@ -51,7 +51,8 @@ struct CmapSubtableFormat0
return true;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -125,7 +126,7 @@ struct CmapSubtableFormat4
return true;
}
- inline bool sanitize (hb_sanitize_context_t *c)
+ inline bool sanitize (hb_sanitize_context_t *c) const
{
TRACE_SANITIZE (this);
if (unlikely (!c->check_struct (this)))
@@ -183,7 +184,8 @@ struct CmapSubtableLongGroup
return 0;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -210,7 +212,8 @@ struct CmapSubtableTrimmed
return true;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && glyphIdArray.sanitize (c));
}
@@ -242,7 +245,8 @@ struct CmapSubtableLongSegmented
return true;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && groups.sanitize (c));
}
@@ -288,7 +292,8 @@ struct UnicodeValueRange
return 0;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -309,7 +314,8 @@ struct UVSMapping
return unicodeValue.cmp (codepoint);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -348,7 +354,8 @@ struct VariationSelectorRecord
return varSelector.cmp (variation_selector);
}
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
defaultUVS.sanitize (c, base) &&
@@ -373,7 +380,8 @@ struct CmapSubtableFormat14
return record[record.bsearch(variation_selector)].get_glyph (codepoint, glyph, this);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
record.sanitize (c, this));
@@ -418,7 +426,8 @@ struct CmapSubtable
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!u.format.sanitize (c)) return TRACE_RETURN (false);
switch (u.format) {
@@ -461,7 +470,8 @@ struct EncodingRecord
return 0;
}
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
subtable.sanitize (c, base));
@@ -496,7 +506,8 @@ struct cmap
return &(this+encodingRecord[result].subtable);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
likely (version == 0) &&
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-font.cc
index 2af2f54a759..2af2f54a759 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-font.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-font.h
index 7a8c04ac33d..7a8c04ac33d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-font.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-font.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-head-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-head-table.hh
index ec4e8c9d453..268f133408c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-head-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-head-table.hh
@@ -45,13 +45,15 @@ struct head
{
static const hb_tag_t tableTag = HB_OT_TAG_head;
- inline unsigned int get_upem (void) const {
+ inline unsigned int get_upem (void) const
+ {
unsigned int upem = unitsPerEm;
/* If no valid head table found, assume 1000, which matches typical Type1 usage. */
return 16 <= upem && upem <= 16384 ? upem : 1000;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && likely (version.major == 1));
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-hhea-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-hhea-table.hh
index edc0e29cbfb..992fe552021 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-hhea-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-hhea-table.hh
@@ -49,7 +49,8 @@ struct _hea
static const hb_tag_t hheaTag = HB_OT_TAG_hhea;
static const hb_tag_t vheaTag = HB_OT_TAG_vhea;
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && likely (version.major == 1));
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-hmtx-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-hmtx-table.hh
index 317854ce7f8..a0e3855a849 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-hmtx-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-hmtx-table.hh
@@ -57,7 +57,8 @@ struct _mtx
static const hb_tag_t hmtxTag = HB_OT_TAG_hmtx;
static const hb_tag_t vmtxTag = HB_OT_TAG_vmtx;
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
/* We don't check for anything specific here. The users of the
* struct do all the hard work... */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-common-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-common-private.hh
index abd063c8961..3db7f57ab42 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-common-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-common-private.hh
@@ -37,6 +37,12 @@
namespace OT {
+#define TRACE_DISPATCH(this, format) \
+ hb_auto_trace_t<context_t::max_debug_depth, typename context_t::return_t> trace \
+ (&c->debug_depth, c->get_name (), this, HB_FUNC, \
+ "format %d", (int) format);
+
+
#define NOT_COVERED ((unsigned int) -1)
#define MAX_NESTING_LEVEL 8
#define MAX_CONTEXT_LENGTH 64
@@ -63,9 +69,10 @@ struct Record
struct sanitize_closure_t {
hb_tag_t tag;
- void *list_base;
+ const void *list_base;
};
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
const sanitize_closure_t closure = {tag, base};
return TRACE_RETURN (c->check_struct (this) && offset.sanitize (c, base, &closure));
@@ -121,7 +128,8 @@ struct RecordListOf : RecordArrayOf<Type>
inline const Type& operator [] (unsigned int i) const
{ return this+RecordArrayOf<Type>::operator [](i).offset; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (RecordArrayOf<Type>::sanitize (c, this));
}
@@ -134,7 +142,8 @@ struct RangeRecord
return g < start ? -1 : g <= end ? 0 : +1 ;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -199,7 +208,8 @@ struct LangSys
}
inline bool sanitize (hb_sanitize_context_t *c,
- const Record<LangSys>::sanitize_closure_t * = NULL) {
+ const Record<LangSys>::sanitize_closure_t * = NULL) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && featureIndex.sanitize (c));
}
@@ -238,7 +248,8 @@ struct Script
inline const LangSys& get_default_lang_sys (void) const { return this+defaultLangSys; }
inline bool sanitize (hb_sanitize_context_t *c,
- const Record<Script>::sanitize_closure_t * = NULL) {
+ const Record<Script>::sanitize_closure_t * = NULL) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (defaultLangSys.sanitize (c, this) && langSys.sanitize (c, this));
}
@@ -260,7 +271,8 @@ typedef RecordListOf<Script> ScriptList;
/* http://www.microsoft.com/typography/otspec/features_pt.htm#size */
struct FeatureParamsSize
{
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!c->check_struct (this))) return TRACE_RETURN (false);
@@ -371,7 +383,8 @@ struct FeatureParamsSize
/* http://www.microsoft.com/typography/otspec/features_pt.htm#ssxx */
struct FeatureParamsStylisticSet
{
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
/* Right now minorVersion is at zero. Which means, any table supports
* the uiNameID field. */
@@ -404,7 +417,8 @@ struct FeatureParamsStylisticSet
/* http://www.microsoft.com/typography/otspec/features_ae.htm#cv01-cv99 */
struct FeatureParamsCharacterVariants
{
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
characters.sanitize (c));
@@ -444,7 +458,8 @@ struct FeatureParamsCharacterVariants
struct FeatureParams
{
- inline bool sanitize (hb_sanitize_context_t *c, hb_tag_t tag) {
+ inline bool sanitize (hb_sanitize_context_t *c, hb_tag_t tag) const
+ {
TRACE_SANITIZE (this);
if (tag == HB_TAG ('s','i','z','e'))
return TRACE_RETURN (u.size.sanitize (c));
@@ -486,7 +501,8 @@ struct Feature
{ return this+featureParams; }
inline bool sanitize (hb_sanitize_context_t *c,
- const Record<Feature>::sanitize_closure_t *closure) {
+ const Record<Feature>::sanitize_closure_t *closure) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!(c->check_struct (this) && lookupIndex.sanitize (c))))
return TRACE_RETURN (false);
@@ -561,6 +577,17 @@ struct Lookup
{
inline unsigned int get_subtable_count (void) const { return subTable.len; }
+ template <typename SubTableType>
+ inline const SubTableType& get_subtable (unsigned int i) const
+ { return this+CastR<OffsetArrayOf<SubTableType> > (subTable)[i]; }
+
+ template <typename SubTableType>
+ inline const OffsetArrayOf<SubTableType>& get_subtables (void) const
+ { return CastR<OffsetArrayOf<SubTableType> > (subTable); }
+ template <typename SubTableType>
+ inline OffsetArrayOf<SubTableType>& get_subtables (void)
+ { return CastR<OffsetArrayOf<SubTableType> > (subTable); }
+
inline unsigned int get_type (void) const { return lookupType; }
/* lookup_props is a 32-bit integer where the lower 16-bit is LookupFlag and
@@ -577,6 +604,20 @@ struct Lookup
return flag;
}
+ template <typename SubTableType, typename context_t>
+ inline typename context_t::return_t dispatch (context_t *c) const
+ {
+ unsigned int lookup_type = get_type ();
+ TRACE_DISPATCH (this, lookup_type);
+ unsigned int count = get_subtable_count ();
+ for (unsigned int i = 0; i < count; i++) {
+ typename context_t::return_t r = get_subtable<SubTableType> (i).dispatch (c, lookup_type);
+ if (c->stop_sublookup_iteration (r))
+ return TRACE_RETURN (r);
+ }
+ return TRACE_RETURN (c->default_return_value ());
+ }
+
inline bool serialize (hb_serialize_context_t *c,
unsigned int lookup_type,
uint32_t lookup_props,
@@ -595,18 +636,20 @@ struct Lookup
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
/* Real sanitize of the subtables is done by GSUB/GPOS/... */
if (!(c->check_struct (this) && subTable.sanitize (c))) return TRACE_RETURN (false);
if (lookupFlag & LookupFlag::UseMarkFilteringSet)
{
- USHORT &markFilteringSet = StructAfter<USHORT> (subTable);
+ const USHORT &markFilteringSet = StructAfter<USHORT> (subTable);
if (!markFilteringSet.sanitize (c)) return TRACE_RETURN (false);
}
return TRACE_RETURN (true);
}
+ private:
USHORT lookupType; /* Different enumerations for GSUB and GPOS */
USHORT lookupFlag; /* Lookup qualifiers */
ArrayOf<Offset<> >
@@ -651,7 +694,8 @@ struct CoverageFormat1
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (glyphArray.sanitize (c));
}
@@ -737,7 +781,8 @@ struct CoverageFormat2
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (rangeRecord.sanitize (c));
}
@@ -832,7 +877,8 @@ struct Coverage
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!u.format.sanitize (c)) return TRACE_RETURN (false);
switch (u.format) {
@@ -938,12 +984,14 @@ struct ClassDefFormat1
private:
inline unsigned int get_class (hb_codepoint_t glyph_id) const
{
- if (unlikely ((unsigned int) (glyph_id - startGlyph) < classValue.len))
- return classValue[glyph_id - startGlyph];
+ unsigned int i = (unsigned int) (glyph_id - startGlyph);
+ if (unlikely (i < classValue.len))
+ return classValue[i];
return 0;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && classValue.sanitize (c));
}
@@ -994,12 +1042,13 @@ struct ClassDefFormat2
inline unsigned int get_class (hb_codepoint_t glyph_id) const
{
int i = rangeRecord.bsearch (glyph_id);
- if (i != -1)
+ if (unlikely (i != -1))
return rangeRecord[i].value;
return 0;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (rangeRecord.sanitize (c));
}
@@ -1056,7 +1105,8 @@ struct ClassDef
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!u.format.sanitize (c)) return TRACE_RETURN (false);
switch (u.format) {
@@ -1148,7 +1198,8 @@ struct Device
return USHORT::static_size * (4 + ((endSize - startSize) >> (4 - f)));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && c->check_range (this, this->get_size ()));
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gdef-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gdef-table.hh
index 84a5e797c63..7a6c04d1700 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gdef-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gdef-table.hh
@@ -71,7 +71,8 @@ struct AttachList
return points.len;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && attachPoint.sanitize (c, this));
}
@@ -101,7 +102,8 @@ struct CaretValueFormat1
return HB_DIRECTION_IS_HORIZONTAL (direction) ? font->em_scale_x (coordinate) : font->em_scale_y (coordinate);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -127,7 +129,8 @@ struct CaretValueFormat2
return 0;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -150,7 +153,8 @@ struct CaretValueFormat3
font->em_scale_y (coordinate) + (this+deviceTable).get_y_delta (font);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && deviceTable.sanitize (c, this));
}
@@ -178,7 +182,8 @@ struct CaretValue
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!u.format.sanitize (c)) return TRACE_RETURN (false);
switch (u.format) {
@@ -219,7 +224,8 @@ struct LigGlyph
return carets.len;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (carets.sanitize (c, this));
}
@@ -253,7 +259,8 @@ struct LigCaretList
return lig_glyph.get_lig_carets (font, direction, glyph_id, start_offset, caret_count, caret_array);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && ligGlyph.sanitize (c, this));
}
@@ -275,7 +282,8 @@ struct MarkGlyphSetsFormat1
inline bool covers (unsigned int set_index, hb_codepoint_t glyph_id) const
{ return (this+coverage[set_index]).get_coverage (glyph_id) != NOT_COVERED; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this));
}
@@ -299,7 +307,8 @@ struct MarkGlyphSets
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!u.format.sanitize (c)) return TRACE_RETURN (false);
switch (u.format) {
@@ -364,7 +373,8 @@ struct GDEF
inline bool mark_set_covers (unsigned int set_index, hb_codepoint_t glyph_id) const
{ return version.to_int () >= 0x00010002u && (this+markGlyphSetsDef[0]).covers (set_index, glyph_id); }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (version.sanitize (c) &&
likely (version.major == 1) &&
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gpos-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gpos-table.hh
index f7fef5273ae..d88f7876e0a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gpos-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gpos-table.hh
@@ -146,7 +146,8 @@ struct ValueFormat : USHORT
}
private:
- inline bool sanitize_value_devices (hb_sanitize_context_t *c, void *base, Value *values) {
+ inline bool sanitize_value_devices (hb_sanitize_context_t *c, const void *base, const Value *values) const
+ {
unsigned int format = *this;
if (format & xPlacement) values++;
@@ -177,12 +178,14 @@ struct ValueFormat : USHORT
return (format & devices) != 0;
}
- inline bool sanitize_value (hb_sanitize_context_t *c, void *base, Value *values) {
+ inline bool sanitize_value (hb_sanitize_context_t *c, const void *base, const Value *values) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_range (values, get_size ()) && (!has_device () || sanitize_value_devices (c, base, values)));
}
- inline bool sanitize_values (hb_sanitize_context_t *c, void *base, Value *values, unsigned int count) {
+ inline bool sanitize_values (hb_sanitize_context_t *c, const void *base, const Value *values, unsigned int count) const
+ {
TRACE_SANITIZE (this);
unsigned int len = get_len ();
@@ -200,7 +203,8 @@ struct ValueFormat : USHORT
}
/* Just sanitize referenced Device tables. Doesn't check the values themselves. */
- inline bool sanitize_values_stride_unsafe (hb_sanitize_context_t *c, void *base, Value *values, unsigned int count, unsigned int stride) {
+ inline bool sanitize_values_stride_unsafe (hb_sanitize_context_t *c, const void *base, const Value *values, unsigned int count, unsigned int stride) const
+ {
TRACE_SANITIZE (this);
if (!has_device ()) return TRACE_RETURN (true);
@@ -225,7 +229,8 @@ struct AnchorFormat1
*y = font->em_scale_y (yCoordinate);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -254,7 +259,8 @@ struct AnchorFormat2
*y = ret && y_ppem ? cy : font->em_scale_y (yCoordinate);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -282,7 +288,8 @@ struct AnchorFormat3
*y += (this+yDeviceTable).get_x_delta (font);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && xDeviceTable.sanitize (c, this) && yDeviceTable.sanitize (c, this));
}
@@ -317,7 +324,8 @@ struct Anchor
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!u.format.sanitize (c)) return TRACE_RETURN (false);
switch (u.format) {
@@ -349,7 +357,8 @@ struct AnchorMatrix
return this+matrixZ[row * cols + col];
}
- inline bool sanitize (hb_sanitize_context_t *c, unsigned int cols) {
+ inline bool sanitize (hb_sanitize_context_t *c, unsigned int cols) const
+ {
TRACE_SANITIZE (this);
if (!c->check_struct (this)) return TRACE_RETURN (false);
if (unlikely (rows > 0 && cols >= ((unsigned int) -1) / rows)) return TRACE_RETURN (false);
@@ -374,7 +383,8 @@ struct MarkRecord
{
friend struct MarkArray;
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && markAnchor.sanitize (c, base));
}
@@ -421,7 +431,8 @@ struct MarkArray : ArrayOf<MarkRecord> /* Array of MarkRecords--in Coverage orde
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (ArrayOf<MarkRecord>::sanitize (c, this));
}
@@ -457,9 +468,12 @@ struct SinglePosFormat1
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
- return TRACE_RETURN (c->check_struct (this) && coverage.sanitize (c, this) && valueFormat.sanitize_value (c, this, values));
+ return TRACE_RETURN (c->check_struct (this)
+ && coverage.sanitize (c, this)
+ && valueFormat.sanitize_value (c, this, values));
}
protected:
@@ -506,9 +520,12 @@ struct SinglePosFormat2
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
- return TRACE_RETURN (c->check_struct (this) && coverage.sanitize (c, this) && valueFormat.sanitize_values (c, this, values, valueCount));
+ return TRACE_RETURN (c->check_struct (this)
+ && coverage.sanitize (c, this)
+ && valueFormat.sanitize_values (c, this, values, valueCount));
}
protected:
@@ -531,6 +548,7 @@ struct SinglePos
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
case 2: return TRACE_RETURN (c->dispatch (u.format2));
@@ -538,16 +556,6 @@ struct SinglePos
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- case 2: return TRACE_RETURN (u.format2.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -636,19 +644,20 @@ struct PairSet
}
struct sanitize_closure_t {
- void *base;
- ValueFormat *valueFormats;
+ const void *base;
+ const ValueFormat *valueFormats;
unsigned int len1; /* valueFormats[0].get_len() */
unsigned int stride; /* 1 + len1 + len2 */
};
- inline bool sanitize (hb_sanitize_context_t *c, const sanitize_closure_t *closure) {
+ inline bool sanitize (hb_sanitize_context_t *c, const sanitize_closure_t *closure) const
+ {
TRACE_SANITIZE (this);
if (!(c->check_struct (this)
&& c->check_array (arrayZ, USHORT::static_size * closure->stride, len))) return TRACE_RETURN (false);
unsigned int count = len;
- PairValueRecord *record = CastP<PairValueRecord> (arrayZ);
+ const PairValueRecord *record = CastP<PairValueRecord> (arrayZ);
return TRACE_RETURN (closure->valueFormats[0].sanitize_values_stride_unsafe (c, closure->base, &record->values[0], count, closure->stride)
&& closure->valueFormats[1].sanitize_values_stride_unsafe (c, closure->base, &record->values[closure->len1], count, closure->stride));
}
@@ -681,18 +690,18 @@ struct PairPosFormat1
{
TRACE_APPLY (this);
hb_buffer_t *buffer = c->buffer;
- hb_apply_context_t::skipping_forward_iterator_t skippy_iter (c, buffer->idx, 1);
- if (skippy_iter.has_no_chance ()) return TRACE_RETURN (false);
-
unsigned int index = (this+coverage).get_coverage (buffer->cur().codepoint);
if (likely (index == NOT_COVERED)) return TRACE_RETURN (false);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
+ skippy_iter.reset (buffer->idx, 1);
if (!skippy_iter.next ()) return TRACE_RETURN (false);
return TRACE_RETURN ((this+pairSet[index]).apply (c, &valueFormat1, skippy_iter.idx));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
unsigned int len1 = valueFormat1.get_len ();
@@ -752,12 +761,11 @@ struct PairPosFormat2
{
TRACE_APPLY (this);
hb_buffer_t *buffer = c->buffer;
- hb_apply_context_t::skipping_forward_iterator_t skippy_iter (c, buffer->idx, 1);
- if (skippy_iter.has_no_chance ()) return TRACE_RETURN (false);
-
unsigned int index = (this+coverage).get_coverage (buffer->cur().codepoint);
if (likely (index == NOT_COVERED)) return TRACE_RETURN (false);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
+ skippy_iter.reset (buffer->idx, 1);
if (!skippy_iter.next ()) return TRACE_RETURN (false);
unsigned int len1 = valueFormat1.get_len ();
@@ -781,7 +789,8 @@ struct PairPosFormat2
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!(c->check_struct (this)
&& coverage.sanitize (c, this)
@@ -834,6 +843,7 @@ struct PairPos
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
case 2: return TRACE_RETURN (c->dispatch (u.format2));
@@ -841,16 +851,6 @@ struct PairPos
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- case 2: return TRACE_RETURN (u.format2.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -864,7 +864,8 @@ struct EntryExitRecord
{
friend struct CursivePosFormat1;
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (entryAnchor.sanitize (c, base) && exitAnchor.sanitize (c, base));
}
@@ -903,12 +904,11 @@ struct CursivePosFormat1
/* We don't handle mark glyphs here. */
if (unlikely (_hb_glyph_info_is_mark (&buffer->cur()))) return TRACE_RETURN (false);
- hb_apply_context_t::skipping_forward_iterator_t skippy_iter (c, buffer->idx, 1);
- if (skippy_iter.has_no_chance ()) return TRACE_RETURN (false);
-
const EntryExitRecord &this_record = entryExitRecord[(this+coverage).get_coverage (buffer->cur().codepoint)];
if (!this_record.exitAnchor) return TRACE_RETURN (false);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
+ skippy_iter.reset (buffer->idx, 1);
if (!skippy_iter.next ()) return TRACE_RETURN (false);
const EntryExitRecord &next_record = entryExitRecord[(this+coverage).get_coverage (buffer->info[skippy_iter.idx].codepoint)];
@@ -978,7 +978,8 @@ struct CursivePosFormat1
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && entryExitRecord.sanitize (c, this));
}
@@ -1001,21 +1002,13 @@ struct CursivePos
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -1051,7 +1044,8 @@ struct MarkBasePosFormat1
if (likely (mark_index == NOT_COVERED)) return TRACE_RETURN (false);
/* now we search backwards for a non-mark glyph */
- hb_apply_context_t::skipping_backward_iterator_t skippy_iter (c, buffer->idx, 1);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
+ skippy_iter.reset (buffer->idx, 1);
skippy_iter.set_lookup_props (LookupFlag::IgnoreMarks);
do {
if (!skippy_iter.prev ()) return TRACE_RETURN (false);
@@ -1069,7 +1063,8 @@ struct MarkBasePosFormat1
return TRACE_RETURN ((this+markArray).apply (c, mark_index, base_index, this+baseArray, classCount, skippy_iter.idx));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && markCoverage.sanitize (c, this) && baseCoverage.sanitize (c, this) &&
markArray.sanitize (c, this) && baseArray.sanitize (c, this, (unsigned int) classCount));
@@ -1100,21 +1095,13 @@ struct MarkBasePos
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -1155,7 +1142,8 @@ struct MarkLigPosFormat1
if (likely (mark_index == NOT_COVERED)) return TRACE_RETURN (false);
/* now we search backwards for a non-mark glyph */
- hb_apply_context_t::skipping_backward_iterator_t skippy_iter (c, buffer->idx, 1);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
+ skippy_iter.reset (buffer->idx, 1);
skippy_iter.set_lookup_props (LookupFlag::IgnoreMarks);
if (!skippy_iter.prev ()) return TRACE_RETURN (false);
@@ -1189,7 +1177,8 @@ struct MarkLigPosFormat1
return TRACE_RETURN ((this+markArray).apply (c, mark_index, comp_index, lig_attach, classCount, j));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && markCoverage.sanitize (c, this) && ligatureCoverage.sanitize (c, this) &&
markArray.sanitize (c, this) && ligatureArray.sanitize (c, this, (unsigned int) classCount));
@@ -1221,21 +1210,13 @@ struct MarkLigPos
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -1271,7 +1252,8 @@ struct MarkMarkPosFormat1
if (likely (mark1_index == NOT_COVERED)) return TRACE_RETURN (false);
/* now we search backwards for a suitable mark glyph until a non-mark glyph */
- hb_apply_context_t::skipping_backward_iterator_t skippy_iter (c, buffer->idx, 1);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
+ skippy_iter.reset (buffer->idx, 1);
skippy_iter.set_lookup_props (c->lookup_props & ~LookupFlag::IgnoreFlags);
if (!skippy_iter.prev ()) return TRACE_RETURN (false);
@@ -1306,7 +1288,8 @@ struct MarkMarkPosFormat1
return TRACE_RETURN ((this+mark1Array).apply (c, mark1_index, mark2_index, this+mark2Array, classCount, j));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && mark1Coverage.sanitize (c, this) &&
mark2Coverage.sanitize (c, this) && mark1Array.sanitize (c, this)
@@ -1340,21 +1323,13 @@ struct MarkMarkPos
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -1399,6 +1374,8 @@ struct PosLookupSubTable
inline typename context_t::return_t dispatch (context_t *c, unsigned int lookup_type) const
{
TRACE_DISPATCH (this, lookup_type);
+ /* The sub_format passed to may_dispatch is unnecessary but harmless. */
+ if (unlikely (!c->may_dispatch (this, &u.sub_format))) TRACE_RETURN (c->default_return_value ());
switch (lookup_type) {
case Single: return TRACE_RETURN (u.single.dispatch (c));
case Pair: return TRACE_RETURN (u.pair.dispatch (c));
@@ -1413,29 +1390,9 @@ struct PosLookupSubTable
}
}
- inline bool sanitize (hb_sanitize_context_t *c, unsigned int lookup_type) {
- TRACE_SANITIZE (this);
- if (!u.header.sub_format.sanitize (c))
- return TRACE_RETURN (false);
- switch (lookup_type) {
- case Single: return TRACE_RETURN (u.single.sanitize (c));
- case Pair: return TRACE_RETURN (u.pair.sanitize (c));
- case Cursive: return TRACE_RETURN (u.cursive.sanitize (c));
- case MarkBase: return TRACE_RETURN (u.markBase.sanitize (c));
- case MarkLig: return TRACE_RETURN (u.markLig.sanitize (c));
- case MarkMark: return TRACE_RETURN (u.markMark.sanitize (c));
- case Context: return TRACE_RETURN (u.context.sanitize (c));
- case ChainContext: return TRACE_RETURN (u.chainContext.sanitize (c));
- case Extension: return TRACE_RETURN (u.extension.sanitize (c));
- default: return TRACE_RETURN (true);
- }
- }
-
protected:
union {
- struct {
- USHORT sub_format;
- } header;
+ USHORT sub_format;
SinglePos single;
PairPos pair;
CursivePos cursive;
@@ -1447,48 +1404,37 @@ struct PosLookupSubTable
ExtensionPos extension;
} u;
public:
- DEFINE_SIZE_UNION (2, header.sub_format);
+ DEFINE_SIZE_UNION (2, sub_format);
};
struct PosLookup : Lookup
{
inline const PosLookupSubTable& get_subtable (unsigned int i) const
- { return this+CastR<OffsetArrayOf<PosLookupSubTable> > (subTable)[i]; }
+ { return Lookup::get_subtable<PosLookupSubTable> (i); }
inline bool is_reverse (void) const
{
return false;
}
+ inline bool apply (hb_apply_context_t *c) const
+ {
+ TRACE_APPLY (this);
+ return TRACE_RETURN (dispatch (c));
+ }
+
inline hb_collect_glyphs_context_t::return_t collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- c->set_recurse_func (NULL);
return TRACE_RETURN (dispatch (c));
}
template <typename set_t>
inline void add_coverage (set_t *glyphs) const
{
- hb_get_coverage_context_t c;
- const Coverage *last = NULL;
- unsigned int count = get_subtable_count ();
- for (unsigned int i = 0; i < count; i++) {
- const Coverage *coverage = &get_subtable (i).dispatch (&c, get_type ());
- if (coverage != last) {
- coverage->add_coverage (glyphs);
- last = coverage;
- }
- }
- }
-
- inline bool apply_once (hb_apply_context_t *c) const
- {
- TRACE_APPLY (this);
- if (!c->check_glyph_property (&c->buffer->cur(), c->lookup_props))
- return TRACE_RETURN (false);
- return TRACE_RETURN (dispatch (c));
+ hb_add_coverage_context_t<set_t> c (glyphs);
+ dispatch (&c);
}
static bool apply_recurse_func (hb_apply_context_t *c, unsigned int lookup_index);
@@ -1498,23 +1444,14 @@ struct PosLookup : Lookup
template <typename context_t>
inline typename context_t::return_t dispatch (context_t *c) const
- {
- unsigned int lookup_type = get_type ();
- TRACE_DISPATCH (this, lookup_type);
- unsigned int count = get_subtable_count ();
- for (unsigned int i = 0; i < count; i++) {
- typename context_t::return_t r = get_subtable (i).dispatch (c, lookup_type);
- if (c->stop_sublookup_iteration (r))
- return TRACE_RETURN (r);
- }
- return TRACE_RETURN (c->default_return_value ());
- }
+ { return Lookup::dispatch<PosLookupSubTable> (c); }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!Lookup::sanitize (c))) return TRACE_RETURN (false);
- OffsetArrayOf<PosLookupSubTable> &list = CastR<OffsetArrayOf<PosLookupSubTable> > (subTable);
- return TRACE_RETURN (list.sanitize (c, this, get_type ()));
+ const OffsetArrayOf<PosLookupSubTable> &list = get_subtables<PosLookupSubTable> ();
+ return TRACE_RETURN (dispatch (c));
}
};
@@ -1534,10 +1471,11 @@ struct GPOS : GSUBGPOS
static inline void position_start (hb_font_t *font, hb_buffer_t *buffer);
static inline void position_finish (hb_font_t *font, hb_buffer_t *buffer);
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!GSUBGPOS::sanitize (c))) return TRACE_RETURN (false);
- OffsetTo<PosLookupList> &list = CastR<OffsetTo<PosLookupList> > (lookupList);
+ const OffsetTo<PosLookupList> &list = CastR<OffsetTo<PosLookupList> > (lookupList);
return TRACE_RETURN (list.sanitize (c, this));
}
public:
@@ -1632,8 +1570,8 @@ template <typename context_t>
const PosLookup &l = gpos.get_lookup (lookup_index);
unsigned int saved_lookup_props = c->lookup_props;
c->set_lookup (l);
- bool ret = l.apply_once (c);
- c->lookup_props = saved_lookup_props;
+ bool ret = l.dispatch (c);
+ c->set_lookup_props (saved_lookup_props);
return ret;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gsub-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gsub-table.hh
index 5d67be0ec0f..ebe4c9ec4e4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gsub-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gsub-table.hh
@@ -97,7 +97,8 @@ struct SingleSubstFormat1
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && deltaGlyphID.sanitize (c));
}
@@ -173,7 +174,8 @@ struct SingleSubstFormat2
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && substitute.sanitize (c));
}
@@ -223,6 +225,7 @@ struct SingleSubst
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
case 2: return TRACE_RETURN (c->dispatch (u.format2));
@@ -230,16 +233,6 @@ struct SingleSubst
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- case 2: return TRACE_RETURN (u.format2.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -312,7 +305,8 @@ struct Sequence
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (substitute.sanitize (c));
}
@@ -384,7 +378,8 @@ struct MultipleSubstFormat1
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && sequence.sanitize (c, this));
}
@@ -423,21 +418,13 @@ struct MultipleSubst
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -535,7 +522,8 @@ struct AlternateSubstFormat1
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && alternateSet.sanitize (c, this));
}
@@ -574,21 +562,13 @@ struct AlternateSubst
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -686,7 +666,8 @@ struct Ligature
}
public:
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (ligGlyph.sanitize (c) && component.sanitize (c));
}
@@ -764,7 +745,8 @@ struct LigatureSet
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (ligature.sanitize (c, this));
}
@@ -848,7 +830,8 @@ struct LigatureSubstFormat1
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && ligatureSet.sanitize (c, this));
}
@@ -890,21 +873,13 @@ struct LigatureSubst
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -1017,14 +992,15 @@ struct ReverseChainSingleSubstFormat1
return TRACE_RETURN (false);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!(coverage.sanitize (c, this) && backtrack.sanitize (c, this)))
return TRACE_RETURN (false);
- OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (backtrack);
+ const OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (backtrack);
if (!lookahead.sanitize (c, this))
return TRACE_RETURN (false);
- ArrayOf<GlyphID> &substitute = StructAfter<ArrayOf<GlyphID> > (lookahead);
+ const ArrayOf<GlyphID> &substitute = StructAfter<ArrayOf<GlyphID> > (lookahead);
return TRACE_RETURN (substitute.sanitize (c));
}
@@ -1054,21 +1030,13 @@ struct ReverseChainSingleSubst
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -1101,6 +1069,8 @@ struct SubstLookupSubTable
inline typename context_t::return_t dispatch (context_t *c, unsigned int lookup_type) const
{
TRACE_DISPATCH (this, lookup_type);
+ /* The sub_format passed to may_dispatch is unnecessary but harmless. */
+ if (unlikely (!c->may_dispatch (this, &u.sub_format))) TRACE_RETURN (c->default_return_value ());
switch (lookup_type) {
case Single: return TRACE_RETURN (u.single.dispatch (c));
case Multiple: return TRACE_RETURN (u.multiple.dispatch (c));
@@ -1114,28 +1084,9 @@ struct SubstLookupSubTable
}
}
- inline bool sanitize (hb_sanitize_context_t *c, unsigned int lookup_type) {
- TRACE_SANITIZE (this);
- if (!u.header.sub_format.sanitize (c))
- return TRACE_RETURN (false);
- switch (lookup_type) {
- case Single: return TRACE_RETURN (u.single.sanitize (c));
- case Multiple: return TRACE_RETURN (u.multiple.sanitize (c));
- case Alternate: return TRACE_RETURN (u.alternate.sanitize (c));
- case Ligature: return TRACE_RETURN (u.ligature.sanitize (c));
- case Context: return TRACE_RETURN (u.context.sanitize (c));
- case ChainContext: return TRACE_RETURN (u.chainContext.sanitize (c));
- case Extension: return TRACE_RETURN (u.extension.sanitize (c));
- case ReverseChainSingle: return TRACE_RETURN (u.reverseChainContextSingle.sanitize (c));
- default: return TRACE_RETURN (true);
- }
- }
-
protected:
union {
- struct {
- USHORT sub_format;
- } header;
+ USHORT sub_format;
SingleSubst single;
MultipleSubst multiple;
AlternateSubst alternate;
@@ -1146,14 +1097,14 @@ struct SubstLookupSubTable
ReverseChainSingleSubst reverseChainContextSingle;
} u;
public:
- DEFINE_SIZE_UNION (2, header.sub_format);
+ DEFINE_SIZE_UNION (2, sub_format);
};
struct SubstLookup : Lookup
{
inline const SubstLookupSubTable& get_subtable (unsigned int i) const
- { return this+CastR<OffsetArrayOf<SubstLookupSubTable> > (subTable)[i]; }
+ { return Lookup::get_subtable<SubstLookupSubTable> (i); }
inline static bool lookup_type_is_reverse (unsigned int lookup_type)
{ return lookup_type == SubstLookupSubTable::ReverseChainSingle; }
@@ -1166,6 +1117,12 @@ struct SubstLookup : Lookup
return lookup_type_is_reverse (type);
}
+ inline bool apply (hb_apply_context_t *c) const
+ {
+ TRACE_APPLY (this);
+ return TRACE_RETURN (dispatch (c));
+ }
+
inline hb_closure_context_t::return_t closure (hb_closure_context_t *c) const
{
TRACE_CLOSURE (this);
@@ -1183,39 +1140,24 @@ struct SubstLookup : Lookup
template <typename set_t>
inline void add_coverage (set_t *glyphs) const
{
- hb_get_coverage_context_t c;
- const Coverage *last = NULL;
- unsigned int count = get_subtable_count ();
- for (unsigned int i = 0; i < count; i++) {
- const Coverage *coverage = &get_subtable (i).dispatch (&c, get_type ());
- if (coverage != last) {
- coverage->add_coverage (glyphs);
- last = coverage;
- }
- }
+ hb_add_coverage_context_t<set_t> c (glyphs);
+ dispatch (&c);
}
- inline bool would_apply (hb_would_apply_context_t *c, const hb_set_digest_t *digest) const
+ inline bool would_apply (hb_would_apply_context_t *c,
+ const hb_ot_layout_lookup_accelerator_t *accel) const
{
TRACE_WOULD_APPLY (this);
if (unlikely (!c->len)) return TRACE_RETURN (false);
- if (!digest->may_have (c->glyphs[0])) return TRACE_RETURN (false);
+ if (!accel->may_have (c->glyphs[0])) return TRACE_RETURN (false);
return TRACE_RETURN (dispatch (c));
}
- inline bool apply_once (hb_apply_context_t *c) const
- {
- TRACE_APPLY (this);
- if (!c->check_glyph_property (&c->buffer->cur(), c->lookup_props))
- return TRACE_RETURN (false);
- return TRACE_RETURN (dispatch (c));
- }
-
static bool apply_recurse_func (hb_apply_context_t *c, unsigned int lookup_index);
inline SubstLookupSubTable& serialize_subtable (hb_serialize_context_t *c,
unsigned int i)
- { return CastR<OffsetArrayOf<SubstLookupSubTable> > (subTable)[i].serialize (c, this); }
+ { return get_subtables<SubstLookupSubTable> ()[i].serialize (c, this); }
inline bool serialize_single (hb_serialize_context_t *c,
uint32_t lookup_props,
@@ -1274,24 +1216,14 @@ struct SubstLookup : Lookup
template <typename context_t>
inline typename context_t::return_t dispatch (context_t *c) const
- {
- unsigned int lookup_type = get_type ();
- TRACE_DISPATCH (this, lookup_type);
- unsigned int count = get_subtable_count ();
- for (unsigned int i = 0; i < count; i++) {
- typename context_t::return_t r = get_subtable (i).dispatch (c, lookup_type);
- if (c->stop_sublookup_iteration (r))
- return TRACE_RETURN (r);
- }
- return TRACE_RETURN (c->default_return_value ());
- }
+ { return Lookup::dispatch<SubstLookupSubTable> (c); }
- inline bool sanitize (hb_sanitize_context_t *c)
+ inline bool sanitize (hb_sanitize_context_t *c) const
{
TRACE_SANITIZE (this);
if (unlikely (!Lookup::sanitize (c))) return TRACE_RETURN (false);
- OffsetArrayOf<SubstLookupSubTable> &list = CastR<OffsetArrayOf<SubstLookupSubTable> > (subTable);
- if (unlikely (!list.sanitize (c, this, get_type ()))) return TRACE_RETURN (false);
+ const OffsetArrayOf<SubstLookupSubTable> &list = get_subtables<SubstLookupSubTable> ();
+ if (unlikely (!dispatch (c))) return TRACE_RETURN (false);
if (unlikely (get_type () == SubstLookupSubTable::Extension))
{
@@ -1324,10 +1256,11 @@ struct GSUB : GSUBGPOS
static inline void substitute_start (hb_font_t *font, hb_buffer_t *buffer);
static inline void substitute_finish (hb_font_t *font, hb_buffer_t *buffer);
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (unlikely (!GSUBGPOS::sanitize (c))) return TRACE_RETURN (false);
- OffsetTo<SubstLookupList> &list = CastR<OffsetTo<SubstLookupList> > (lookupList);
+ const OffsetTo<SubstLookupList> &list = CastR<OffsetTo<SubstLookupList> > (lookupList);
return TRACE_RETURN (list.sanitize (c, this));
}
public:
@@ -1362,7 +1295,7 @@ GSUB::substitute_finish (hb_font_t *font HB_UNUSED, hb_buffer_t *buffer HB_UNUSE
{
unsigned int type = get_type ();
if (unlikely (type == SubstLookupSubTable::Extension))
- return CastR<ExtensionSubst> (get_subtable<SubstLookupSubTable>()).is_reverse ();
+ return CastR<ExtensionSubst> (get_subtable<LookupSubTable>()).is_reverse ();
return SubstLookup::lookup_type_is_reverse (type);
}
@@ -1380,8 +1313,8 @@ template <typename context_t>
const SubstLookup &l = gsub.get_lookup (lookup_index);
unsigned int saved_lookup_props = c->lookup_props;
c->set_lookup (l);
- bool ret = l.apply_once (c);
- c->lookup_props = saved_lookup_props;
+ bool ret = l.dispatch (c);
+ c->set_lookup_props (saved_lookup_props);
return ret;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gsubgpos-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gsubgpos-private.hh
index 57fc1e05f76..cbc6840bc86 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-gsubgpos-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-gsubgpos-private.hh
@@ -37,12 +37,6 @@
namespace OT {
-
-#define TRACE_DISPATCH(this, format) \
- hb_auto_trace_t<context_t::max_debug_depth, typename context_t::return_t> trace \
- (&c->debug_depth, c->get_name (), this, HB_FUNC, \
- "format %d", (int) format);
-
#ifndef HB_DEBUG_CLOSURE
#define HB_DEBUG_CLOSURE (HB_DEBUG+0)
#endif
@@ -58,6 +52,8 @@ struct hb_closure_context_t
static const unsigned int max_debug_depth = HB_DEBUG_CLOSURE;
typedef hb_void_t return_t;
typedef return_t (*recurse_func_t) (hb_closure_context_t *c, unsigned int lookup_index);
+ template <typename T, typename F>
+ inline bool may_dispatch (const T *obj, const F *format) { return true; }
template <typename T>
inline return_t dispatch (const T &obj) { obj.closure (this); return HB_VOID; }
static return_t default_return_value (void) { return HB_VOID; }
@@ -107,6 +103,8 @@ struct hb_would_apply_context_t
inline const char *get_name (void) { return "WOULD_APPLY"; }
static const unsigned int max_debug_depth = HB_DEBUG_WOULD_APPLY;
typedef bool return_t;
+ template <typename T, typename F>
+ inline bool may_dispatch (const T *obj, const F *format) { return true; }
template <typename T>
inline return_t dispatch (const T &obj) { return obj.would_apply (this); }
static return_t default_return_value (void) { return false; }
@@ -146,6 +144,8 @@ struct hb_collect_glyphs_context_t
static const unsigned int max_debug_depth = HB_DEBUG_COLLECT_GLYPHS;
typedef hb_void_t return_t;
typedef return_t (*recurse_func_t) (hb_collect_glyphs_context_t *c, unsigned int lookup_index);
+ template <typename T, typename F>
+ inline bool may_dispatch (const T *obj, const F *format) { return true; }
template <typename T>
inline return_t dispatch (const T &obj) { obj.collect_glyphs (this); return HB_VOID; }
static return_t default_return_value (void) { return HB_VOID; }
@@ -232,18 +232,28 @@ struct hb_collect_glyphs_context_t
#define HB_DEBUG_GET_COVERAGE (HB_DEBUG+0)
#endif
-struct hb_get_coverage_context_t
+template <typename set_t>
+struct hb_add_coverage_context_t
{
inline const char *get_name (void) { return "GET_COVERAGE"; }
static const unsigned int max_debug_depth = HB_DEBUG_GET_COVERAGE;
typedef const Coverage &return_t;
+ template <typename T, typename F>
+ inline bool may_dispatch (const T *obj, const F *format) { return true; }
template <typename T>
inline return_t dispatch (const T &obj) { return obj.get_coverage (); }
static return_t default_return_value (void) { return Null(Coverage); }
+ bool stop_sublookup_iteration (return_t r) const
+ {
+ r.add_coverage (set);
+ return false;
+ }
- hb_get_coverage_context_t (void) :
+ hb_add_coverage_context_t (set_t *set_) :
+ set (set_),
debug_depth (0) {}
+ set_t *set;
unsigned int debug_depth;
};
@@ -260,61 +270,6 @@ struct hb_get_coverage_context_t
struct hb_apply_context_t
{
- inline const char *get_name (void) { return "APPLY"; }
- static const unsigned int max_debug_depth = HB_DEBUG_APPLY;
- typedef bool return_t;
- typedef return_t (*recurse_func_t) (hb_apply_context_t *c, unsigned int lookup_index);
- template <typename T>
- inline return_t dispatch (const T &obj) { return obj.apply (this); }
- static return_t default_return_value (void) { return false; }
- bool stop_sublookup_iteration (return_t r) const { return r; }
- return_t recurse (unsigned int lookup_index)
- {
- if (unlikely (nesting_level_left == 0 || !recurse_func))
- return default_return_value ();
-
- nesting_level_left--;
- bool ret = recurse_func (this, lookup_index);
- nesting_level_left++;
- return ret;
- }
-
- unsigned int table_index; /* GSUB/GPOS */
- hb_font_t *font;
- hb_face_t *face;
- hb_buffer_t *buffer;
- hb_direction_t direction;
- hb_mask_t lookup_mask;
- bool auto_zwj;
- recurse_func_t recurse_func;
- unsigned int nesting_level_left;
- unsigned int lookup_props;
- const GDEF &gdef;
- bool has_glyph_classes;
- unsigned int debug_depth;
-
-
- hb_apply_context_t (unsigned int table_index_,
- hb_font_t *font_,
- hb_buffer_t *buffer_) :
- table_index (table_index_),
- font (font_), face (font->face), buffer (buffer_),
- direction (buffer_->props.direction),
- lookup_mask (1),
- auto_zwj (true),
- recurse_func (NULL),
- nesting_level_left (MAX_NESTING_LEVEL),
- lookup_props (0),
- gdef (*hb_ot_layout_from_face (face)->gdef),
- has_glyph_classes (gdef.has_glyph_classes ()),
- debug_depth (0) {}
-
- inline void set_lookup_mask (hb_mask_t mask) { lookup_mask = mask; }
- inline void set_auto_zwj (bool auto_zwj_) { auto_zwj = auto_zwj_; }
- inline void set_recurse_func (recurse_func_t func) { recurse_func = func; }
- inline void set_lookup_props (unsigned int lookup_props_) { lookup_props = lookup_props_; }
- inline void set_lookup (const Lookup &l) { lookup_props = l.get_props (); }
-
struct matcher_t
{
inline matcher_t (void) :
@@ -390,29 +345,24 @@ struct hb_apply_context_t
const void *match_data;
};
- struct skipping_forward_iterator_t
- {
- inline skipping_forward_iterator_t (hb_apply_context_t *c_,
- unsigned int start_index_,
- unsigned int num_items_,
- bool context_match = false) :
- idx (start_index_),
- c (c_),
- match_glyph_data (NULL),
- num_items (num_items_),
- end (c->buffer->len)
+ struct skipping_iterator_t
+ {
+ inline void init (hb_apply_context_t *c_, bool context_match = false)
{
+ c = c_;
+ match_glyph_data = NULL,
+ matcher.set_match_func (NULL, NULL);
matcher.set_lookup_props (c->lookup_props);
/* Ignore ZWNJ if we are matching GSUB context, or matching GPOS. */
matcher.set_ignore_zwnj (context_match || c->table_index == 1);
/* Ignore ZWJ if we are matching GSUB context, or matching GPOS, or if asked to. */
matcher.set_ignore_zwj (context_match || c->table_index == 1 || c->auto_zwj);
- if (!context_match)
- matcher.set_mask (c->lookup_mask);
- matcher.set_syllable (start_index_ == c->buffer->idx ? c->buffer->cur().syllable () : 0);
+ matcher.set_mask (context_match ? -1 : c->lookup_mask);
+ }
+ inline void set_lookup_props (unsigned int lookup_props)
+ {
+ matcher.set_lookup_props (lookup_props);
}
- inline void set_lookup_props (unsigned int lookup_props) { matcher.set_lookup_props (lookup_props); }
- inline void set_syllable (unsigned int syllable) { matcher.set_syllable (syllable); }
inline void set_match_func (matcher_t::match_func_t match_func,
const void *match_data,
const USHORT glyph_data[])
@@ -421,12 +371,21 @@ struct hb_apply_context_t
match_glyph_data = glyph_data;
}
- inline bool has_no_chance (void) const { return unlikely (num_items && idx + num_items >= end); }
+ inline void reset (unsigned int start_index_,
+ unsigned int num_items_)
+ {
+ idx = start_index_;
+ num_items = num_items_;
+ end = c->buffer->len;
+ matcher.set_syllable (start_index_ == c->buffer->idx ? c->buffer->cur().syllable () : 0);
+ }
+
inline void reject (void) { num_items++; match_glyph_data--; }
+
inline bool next (void)
{
assert (num_items > 0);
- while (!has_no_chance ())
+ while (idx + num_items < end)
{
idx++;
const hb_glyph_info_t &info = c->buffer->info[idx];
@@ -450,53 +409,10 @@ struct hb_apply_context_t
}
return false;
}
-
- unsigned int idx;
- protected:
- hb_apply_context_t *c;
- matcher_t matcher;
- const USHORT *match_glyph_data;
-
- unsigned int num_items;
- unsigned int end;
- };
-
- struct skipping_backward_iterator_t
- {
- inline skipping_backward_iterator_t (hb_apply_context_t *c_,
- unsigned int start_index_,
- unsigned int num_items_,
- bool context_match = false) :
- idx (start_index_),
- c (c_),
- match_glyph_data (NULL),
- num_items (num_items_)
- {
- matcher.set_lookup_props (c->lookup_props);
- /* Ignore ZWNJ if we are matching GSUB context, or matching GPOS. */
- matcher.set_ignore_zwnj (context_match || c->table_index == 1);
- /* Ignore ZWJ if we are matching GSUB context, or matching GPOS, or if asked to. */
- matcher.set_ignore_zwj (context_match || c->table_index == 1 || c->auto_zwj);
- if (!context_match)
- matcher.set_mask (c->lookup_mask);
- matcher.set_syllable (start_index_ == c->buffer->idx ? c->buffer->cur().syllable () : 0);
- }
- inline void set_lookup_props (unsigned int lookup_props) { matcher.set_lookup_props (lookup_props); }
- inline void set_syllable (unsigned int syllable) { matcher.set_syllable (syllable); }
- inline void set_match_func (matcher_t::match_func_t match_func,
- const void *match_data,
- const USHORT glyph_data[])
- {
- matcher.set_match_func (match_func, match_data);
- match_glyph_data = glyph_data;
- }
-
- inline bool has_no_chance (void) const { return unlikely (idx < num_items); }
- inline void reject (void) { num_items++; }
inline bool prev (void)
{
assert (num_items > 0);
- while (!has_no_chance ())
+ while (idx >= num_items)
{
idx--;
const hb_glyph_info_t &info = c->buffer->out_info[idx];
@@ -528,8 +444,75 @@ struct hb_apply_context_t
const USHORT *match_glyph_data;
unsigned int num_items;
+ unsigned int end;
};
+
+ inline const char *get_name (void) { return "APPLY"; }
+ static const unsigned int max_debug_depth = HB_DEBUG_APPLY;
+ typedef bool return_t;
+ typedef return_t (*recurse_func_t) (hb_apply_context_t *c, unsigned int lookup_index);
+ template <typename T, typename F>
+ inline bool may_dispatch (const T *obj, const F *format) { return true; }
+ template <typename T>
+ inline return_t dispatch (const T &obj) { return obj.apply (this); }
+ static return_t default_return_value (void) { return false; }
+ bool stop_sublookup_iteration (return_t r) const { return r; }
+ return_t recurse (unsigned int lookup_index)
+ {
+ if (unlikely (nesting_level_left == 0 || !recurse_func))
+ return default_return_value ();
+
+ nesting_level_left--;
+ bool ret = recurse_func (this, lookup_index);
+ nesting_level_left++;
+ return ret;
+ }
+
+ unsigned int table_index; /* GSUB/GPOS */
+ hb_font_t *font;
+ hb_face_t *face;
+ hb_buffer_t *buffer;
+ hb_direction_t direction;
+ hb_mask_t lookup_mask;
+ bool auto_zwj;
+ recurse_func_t recurse_func;
+ unsigned int nesting_level_left;
+ unsigned int lookup_props;
+ const GDEF &gdef;
+ bool has_glyph_classes;
+ skipping_iterator_t iter_input, iter_context;
+ unsigned int debug_depth;
+
+
+ hb_apply_context_t (unsigned int table_index_,
+ hb_font_t *font_,
+ hb_buffer_t *buffer_) :
+ table_index (table_index_),
+ font (font_), face (font->face), buffer (buffer_),
+ direction (buffer_->props.direction),
+ lookup_mask (1),
+ auto_zwj (true),
+ recurse_func (NULL),
+ nesting_level_left (MAX_NESTING_LEVEL),
+ lookup_props (0),
+ gdef (*hb_ot_layout_from_face (face)->gdef),
+ has_glyph_classes (gdef.has_glyph_classes ()),
+ iter_input (),
+ iter_context (),
+ debug_depth (0) {}
+
+ inline void set_lookup_mask (hb_mask_t mask) { lookup_mask = mask; }
+ inline void set_auto_zwj (bool auto_zwj_) { auto_zwj = auto_zwj_; }
+ inline void set_recurse_func (recurse_func_t func) { recurse_func = func; }
+ inline void set_lookup (const Lookup &l) { set_lookup_props (l.get_props ()); }
+ inline void set_lookup_props (unsigned int lookup_props_)
+ {
+ lookup_props = lookup_props_;
+ iter_input.init (this, false);
+ iter_context.init (this, true);
+ }
+
inline bool
match_properties_mark (hb_codepoint_t glyph,
unsigned int glyph_props,
@@ -741,9 +724,9 @@ static inline bool match_input (hb_apply_context_t *c,
hb_buffer_t *buffer = c->buffer;
- hb_apply_context_t::skipping_forward_iterator_t skippy_iter (c, buffer->idx, count - 1);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
+ skippy_iter.reset (buffer->idx, count - 1);
skippy_iter.set_match_func (match_func, match_data, input);
- if (skippy_iter.has_no_chance ()) return TRACE_RETURN (false);
/*
* This is perhaps the trickiest part of OpenType... Remarks:
@@ -910,9 +893,9 @@ static inline bool match_backtrack (hb_apply_context_t *c,
{
TRACE_APPLY (NULL);
- hb_apply_context_t::skipping_backward_iterator_t skippy_iter (c, c->buffer->backtrack_len (), count, true);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_context;
+ skippy_iter.reset (c->buffer->backtrack_len (), count);
skippy_iter.set_match_func (match_func, match_data, backtrack);
- if (skippy_iter.has_no_chance ()) return TRACE_RETURN (false);
for (unsigned int i = 0; i < count; i++)
if (!skippy_iter.prev ())
@@ -930,9 +913,9 @@ static inline bool match_lookahead (hb_apply_context_t *c,
{
TRACE_APPLY (NULL);
- hb_apply_context_t::skipping_forward_iterator_t skippy_iter (c, c->buffer->idx + offset - 1, count, true);
+ hb_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_context;
+ skippy_iter.reset (c->buffer->idx + offset - 1, count);
skippy_iter.set_match_func (match_func, match_data, lookahead);
- if (skippy_iter.has_no_chance ()) return TRACE_RETURN (false);
for (unsigned int i = 0; i < count; i++)
if (!skippy_iter.next ())
@@ -945,7 +928,8 @@ static inline bool match_lookahead (hb_apply_context_t *c,
struct LookupRecord
{
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this));
}
@@ -1168,7 +1152,8 @@ struct Rule
}
public:
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return inputCount.sanitize (c)
&& lookupCount.sanitize (c)
@@ -1232,7 +1217,8 @@ struct RuleSet
return TRACE_RETURN (false);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (rule.sanitize (c, this));
}
@@ -1314,7 +1300,8 @@ struct ContextFormat1
return TRACE_RETURN (rule_set.apply (c, lookup_context));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && ruleSet.sanitize (c, this));
}
@@ -1406,7 +1393,8 @@ struct ContextFormat2
return TRACE_RETURN (rule_set.apply (c, lookup_context));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && classDef.sanitize (c, this) && ruleSet.sanitize (c, this));
}
@@ -1494,7 +1482,8 @@ struct ContextFormat3
return TRACE_RETURN (context_apply_lookup (c, glyphCount, (const USHORT *) (coverageZ + 1), lookupCount, lookupRecord, lookup_context));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!c->check_struct (this)) return TRACE_RETURN (false);
unsigned int count = glyphCount;
@@ -1502,7 +1491,7 @@ struct ContextFormat3
if (!c->check_array (coverageZ, coverageZ[0].static_size, count)) return TRACE_RETURN (false);
for (unsigned int i = 0; i < count; i++)
if (!coverageZ[i].sanitize (c, this)) return TRACE_RETURN (false);
- LookupRecord *lookupRecord = &StructAtOffset<LookupRecord> (coverageZ, coverageZ[0].static_size * count);
+ const LookupRecord *lookupRecord = &StructAtOffset<LookupRecord> (coverageZ, coverageZ[0].static_size * count);
return TRACE_RETURN (c->check_array (lookupRecord, lookupRecord[0].static_size, lookupCount));
}
@@ -1526,6 +1515,7 @@ struct Context
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
case 2: return TRACE_RETURN (c->dispatch (u.format2));
@@ -1534,17 +1524,6 @@ struct Context
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- case 2: return TRACE_RETURN (u.format2.sanitize (c));
- case 3: return TRACE_RETURN (u.format3.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -1726,14 +1705,15 @@ struct ChainRule
lookup.array, lookup_context));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!backtrack.sanitize (c)) return TRACE_RETURN (false);
- HeadlessArrayOf<USHORT> &input = StructAfter<HeadlessArrayOf<USHORT> > (backtrack);
+ const HeadlessArrayOf<USHORT> &input = StructAfter<HeadlessArrayOf<USHORT> > (backtrack);
if (!input.sanitize (c)) return TRACE_RETURN (false);
- ArrayOf<USHORT> &lookahead = StructAfter<ArrayOf<USHORT> > (input);
+ const ArrayOf<USHORT> &lookahead = StructAfter<ArrayOf<USHORT> > (input);
if (!lookahead.sanitize (c)) return TRACE_RETURN (false);
- ArrayOf<LookupRecord> &lookup = StructAfter<ArrayOf<LookupRecord> > (lookahead);
+ const ArrayOf<LookupRecord> &lookup = StructAfter<ArrayOf<LookupRecord> > (lookahead);
return TRACE_RETURN (lookup.sanitize (c));
}
@@ -1795,7 +1775,8 @@ struct ChainRuleSet
return TRACE_RETURN (false);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (rule.sanitize (c, this));
}
@@ -1874,7 +1855,8 @@ struct ChainContextFormat1
return TRACE_RETURN (rule_set.apply (c, lookup_context));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && ruleSet.sanitize (c, this));
}
@@ -1984,7 +1966,8 @@ struct ChainContextFormat2
return TRACE_RETURN (rule_set.apply (c, lookup_context));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (coverage.sanitize (c, this) && backtrackClassDef.sanitize (c, this) &&
inputClassDef.sanitize (c, this) && lookaheadClassDef.sanitize (c, this) &&
@@ -2105,15 +2088,16 @@ struct ChainContextFormat3
lookup.len, lookup.array, lookup_context));
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
if (!backtrack.sanitize (c, this)) return TRACE_RETURN (false);
- OffsetArrayOf<Coverage> &input = StructAfter<OffsetArrayOf<Coverage> > (backtrack);
+ const OffsetArrayOf<Coverage> &input = StructAfter<OffsetArrayOf<Coverage> > (backtrack);
if (!input.sanitize (c, this)) return TRACE_RETURN (false);
if (!input.len) return TRACE_RETURN (false); /* To be consistent with Context. */
- OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (input);
+ const OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (input);
if (!lookahead.sanitize (c, this)) return TRACE_RETURN (false);
- ArrayOf<LookupRecord> &lookup = StructAfter<ArrayOf<LookupRecord> > (lookahead);
+ const ArrayOf<LookupRecord> &lookup = StructAfter<ArrayOf<LookupRecord> > (lookahead);
return TRACE_RETURN (lookup.sanitize (c));
}
@@ -2144,6 +2128,7 @@ struct ChainContext
inline typename context_t::return_t dispatch (context_t *c) const
{
TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
case 1: return TRACE_RETURN (c->dispatch (u.format1));
case 2: return TRACE_RETURN (c->dispatch (u.format2));
@@ -2152,17 +2137,6 @@ struct ChainContext
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
- switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- case 2: return TRACE_RETURN (u.format2.sanitize (c));
- case 3: return TRACE_RETURN (u.format3.sanitize (c));
- default:return TRACE_RETURN (true);
- }
- }
-
protected:
union {
USHORT format; /* Format identifier */
@@ -2173,14 +2147,32 @@ struct ChainContext
};
+template <typename T>
struct ExtensionFormat1
{
inline unsigned int get_type (void) const { return extensionLookupType; }
- inline unsigned int get_offset (void) const { return extensionOffset; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ template <typename X>
+ inline const X& get_subtable (void) const
+ {
+ unsigned int offset = extensionOffset;
+ if (unlikely (!offset)) return Null(typename T::LookupSubTable);
+ return StructAtOffset<typename T::LookupSubTable> (this, offset);
+ }
+
+ template <typename context_t>
+ inline typename context_t::return_t dispatch (context_t *c) const
+ {
+ TRACE_DISPATCH (this, format);
+ if (unlikely (!c->may_dispatch (this, this))) TRACE_RETURN (c->default_return_value ());
+ return get_subtable<typename T::LookupSubTable> ().dispatch (c, get_type ());
+ }
+
+ /* This is called from may_dispatch() above with hb_sanitize_context_t. */
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
- return TRACE_RETURN (c->check_struct (this));
+ return TRACE_RETURN (c->check_struct (this) && extensionOffset != 0);
}
protected:
@@ -2204,49 +2196,30 @@ struct Extension
default:return 0;
}
}
- inline unsigned int get_offset (void) const
- {
- switch (u.format) {
- case 1: return u.format1.get_offset ();
- default:return 0;
- }
- }
-
template <typename X>
inline const X& get_subtable (void) const
{
- unsigned int offset = get_offset ();
- if (unlikely (!offset)) return Null(typename T::LookupSubTable);
- return StructAtOffset<typename T::LookupSubTable> (this, offset);
+ switch (u.format) {
+ case 1: return u.format1.template get_subtable<typename T::LookupSubTable> ();
+ default:return Null(typename T::LookupSubTable);
+ }
}
template <typename context_t>
inline typename context_t::return_t dispatch (context_t *c) const
{
- return get_subtable<typename T::LookupSubTable> ().dispatch (c, get_type ());
- }
-
- inline bool sanitize_self (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!u.format.sanitize (c)) return TRACE_RETURN (false);
+ TRACE_DISPATCH (this, u.format);
+ if (unlikely (!c->may_dispatch (this, &u.format))) TRACE_RETURN (c->default_return_value ());
switch (u.format) {
- case 1: return TRACE_RETURN (u.format1.sanitize (c));
- default:return TRACE_RETURN (true);
+ case 1: return TRACE_RETURN (u.format1.dispatch (c));
+ default:return TRACE_RETURN (c->default_return_value ());
}
}
- inline bool sanitize (hb_sanitize_context_t *c) {
- TRACE_SANITIZE (this);
- if (!sanitize_self (c)) return TRACE_RETURN (false);
- unsigned int offset = get_offset ();
- if (unlikely (!offset)) return TRACE_RETURN (true);
- return TRACE_RETURN (StructAtOffset<typename T::LookupSubTable> (this, offset).sanitize (c, get_type ()));
- }
-
protected:
union {
USHORT format; /* Format identifier */
- ExtensionFormat1 format1;
+ ExtensionFormat1<T> format1;
} u;
};
@@ -2291,7 +2264,8 @@ struct GSUBGPOS
inline const Lookup& get_lookup (unsigned int i) const
{ return (this+lookupList)[i]; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (version.sanitize (c) && likely (version.major == 1) &&
scriptList.sanitize (c, this) &&
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-jstf-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-jstf-table.hh
index 67a6df5b421..739dfd91067 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-jstf-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-jstf-table.hh
@@ -54,7 +54,8 @@ typedef OffsetListOf<PosLookup> JstfMax;
struct JstfPriority
{
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
shrinkageEnableGSUB.sanitize (c, this) &&
@@ -123,7 +124,8 @@ struct JstfPriority
struct JstfLangSys : OffsetListOf<JstfPriority>
{
inline bool sanitize (hb_sanitize_context_t *c,
- const Record<JstfLangSys>::sanitize_closure_t * = NULL) {
+ const Record<JstfLangSys>::sanitize_closure_t * = NULL) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (OffsetListOf<JstfPriority>::sanitize (c));
}
@@ -163,7 +165,8 @@ struct JstfScript
inline const JstfLangSys& get_default_lang_sys (void) const { return this+defaultLangSys; }
inline bool sanitize (hb_sanitize_context_t *c,
- const Record<JstfScript>::sanitize_closure_t * = NULL) {
+ const Record<JstfScript>::sanitize_closure_t * = NULL) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (extenderGlyphs.sanitize (c, this) &&
defaultLangSys.sanitize (c, this) &&
@@ -206,7 +209,8 @@ struct JSTF
inline bool find_script_index (hb_tag_t tag, unsigned int *index) const
{ return scriptList.find_index (tag, index); }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (version.sanitize (c) && likely (version.major == 1) &&
scriptList.sanitize (c, this));
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-private.hh
index 3f7c858d1cf..47fecd216d3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout-private.hh
@@ -130,6 +130,11 @@ struct hb_ot_layout_lookup_accelerator_t
{
}
+ inline bool may_have (hb_codepoint_t g) const {
+ return digest.may_have (g);
+ }
+
+ private:
hb_set_digest_t digest;
};
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout.cc
index 602b94ecd6c..b1e69e89f4c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout.cc
@@ -699,7 +699,7 @@ hb_ot_layout_lookup_would_substitute_fast (hb_face_t *face,
const OT::SubstLookup& l = hb_ot_layout_from_face (face)->gsub->get_lookup (lookup_index);
- return l.would_apply (&c, &hb_ot_layout_from_face (face)->gsub_accels[lookup_index].digest);
+ return l.would_apply (&c, &hb_ot_layout_from_face (face)->gsub_accels[lookup_index]);
}
void
@@ -829,26 +829,83 @@ struct GPOSProxy
};
-template <typename Lookup>
-static inline bool apply_once (OT::hb_apply_context_t *c,
- const Lookup &lookup)
+template <typename Obj>
+static inline bool
+apply_forward (OT::hb_apply_context_t *c,
+ const Obj &obj,
+ const hb_ot_layout_lookup_accelerator_t &accel)
{
- if (!c->check_glyph_property (&c->buffer->cur(), c->lookup_props))
- return false;
- return lookup.dispatch (c);
+ bool ret = false;
+ hb_buffer_t *buffer = c->buffer;
+ while (buffer->idx < buffer->len)
+ {
+ if (accel.may_have (buffer->cur().codepoint) &&
+ (buffer->cur().mask & c->lookup_mask) &&
+ c->check_glyph_property (&buffer->cur(), c->lookup_props) &&
+ obj.apply (c))
+ ret = true;
+ else
+ buffer->next_glyph ();
+ }
+ return ret;
}
-template <typename Proxy>
+template <typename Obj>
static inline bool
+apply_backward (OT::hb_apply_context_t *c,
+ const Obj &obj,
+ const hb_ot_layout_lookup_accelerator_t &accel)
+{
+ bool ret = false;
+ hb_buffer_t *buffer = c->buffer;
+ do
+ {
+ if (accel.may_have (buffer->cur().codepoint) &&
+ (buffer->cur().mask & c->lookup_mask) &&
+ c->check_glyph_property (&buffer->cur(), c->lookup_props) &&
+ obj.apply (c))
+ ret = true;
+ /* The reverse lookup doesn't "advance" cursor (for good reason). */
+ buffer->idx--;
+
+ }
+ while ((int) buffer->idx >= 0);
+ return ret;
+}
+
+struct hb_apply_forward_context_t
+{
+ inline const char *get_name (void) { return "APPLY_FORWARD"; }
+ static const unsigned int max_debug_depth = HB_DEBUG_APPLY;
+ typedef bool return_t;
+ template <typename T, typename F>
+ inline bool may_dispatch (const T *obj, const F *format) { return true; }
+ template <typename T>
+ inline return_t dispatch (const T &obj) { return apply_forward (c, obj, accel); }
+ static return_t default_return_value (void) { return false; }
+ bool stop_sublookup_iteration (return_t r HB_UNUSED) const { return true; }
+
+ hb_apply_forward_context_t (OT::hb_apply_context_t *c_,
+ const hb_ot_layout_lookup_accelerator_t &accel_) :
+ c (c_),
+ accel (accel_),
+ debug_depth (0) {}
+
+ OT::hb_apply_context_t *c;
+ const hb_ot_layout_lookup_accelerator_t &accel;
+ unsigned int debug_depth;
+};
+
+template <typename Proxy>
+static inline void
apply_string (OT::hb_apply_context_t *c,
const typename Proxy::Lookup &lookup,
const hb_ot_layout_lookup_accelerator_t &accel)
{
- bool ret = false;
hb_buffer_t *buffer = c->buffer;
if (unlikely (!buffer->len || !c->lookup_mask))
- return false;
+ return;
c->set_lookup (lookup);
@@ -859,21 +916,20 @@ apply_string (OT::hb_apply_context_t *c,
buffer->clear_output ();
buffer->idx = 0;
- while (buffer->idx < buffer->len)
+ bool ret;
+ if (lookup.get_subtable_count () == 1)
{
- if (accel.digest.may_have (buffer->cur().codepoint) &&
- (buffer->cur().mask & c->lookup_mask) &&
- apply_once (c, lookup))
- ret = true;
- else
- buffer->next_glyph ();
+ hb_apply_forward_context_t c_forward (c, accel);
+ ret = lookup.dispatch (&c_forward);
}
+ else
+ ret = apply_forward (c, lookup, accel);
if (ret)
{
if (!Proxy::inplace)
buffer->swap_buffers ();
else
- assert (!buffer->has_separate_output ());
+ assert (!buffer->has_separate_output ());
}
}
else
@@ -882,20 +938,9 @@ apply_string (OT::hb_apply_context_t *c,
if (Proxy::table_index == 0)
buffer->remove_output ();
buffer->idx = buffer->len - 1;
- do
- {
- if (accel.digest.may_have (buffer->cur().codepoint) &&
- (buffer->cur().mask & c->lookup_mask) &&
- apply_once (c, lookup))
- ret = true;
- /* The reverse lookup doesn't "advance" cursor (for good reason). */
- buffer->idx--;
- }
- while ((int) buffer->idx >= 0);
+ apply_backward (c, lookup, accel);
}
-
- return ret;
}
template <typename Proxy>
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout.h
index 949678ac422..949678ac422 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-layout.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-layout.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-map-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-map-private.hh
index 86b7e9fafea..86b7e9fafea 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-map-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-map-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-map.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-map.cc
index 4985eb22b20..4985eb22b20 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-map.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-map.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-maxp-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-maxp-table.hh
index b1f832852d3..0d9a0fa1d87 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-maxp-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-maxp-table.hh
@@ -43,11 +43,13 @@ struct maxp
{
static const hb_tag_t tableTag = HB_OT_TAG_maxp;
- inline unsigned int get_num_glyphs (void) const {
+ inline unsigned int get_num_glyphs (void) const
+ {
return numGlyphs;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
likely (version.major == 1 || (version.major == 0 && version.minor == 0x5000u)));
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-name-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-name-table.hh
index 31d9fac7e29..21450c61382 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-name-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-name-table.hh
@@ -56,7 +56,8 @@ struct NameRecord
return 0;
}
- inline bool sanitize (hb_sanitize_context_t *c, void *base) {
+ inline bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
TRACE_SANITIZE (this);
/* We can check from base all the way up to the end of string... */
return TRACE_RETURN (c->check_struct (this) && c->check_range ((char *) base, (unsigned int) length + offset));
@@ -101,7 +102,7 @@ struct name
inline unsigned int get_size (void) const
{ return min_size + count * nameRecord[0].min_size; }
- inline bool sanitize_records (hb_sanitize_context_t *c) {
+ inline bool sanitize_records (hb_sanitize_context_t *c) const {
TRACE_SANITIZE (this);
char *string_pool = (char *) this + stringOffset;
unsigned int _count = count;
@@ -110,7 +111,8 @@ struct name
return TRACE_RETURN (true);
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
likely (format == 0 || format == 1) &&
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-fallback.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-fallback.hh
index a77f24ec849..a77f24ec849 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-fallback.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-fallback.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-table.hh
index 17100497ecb..17100497ecb 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-win1256.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-win1256.hh
index 3a20b507d4e..8edd3ba8027 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic-win1256.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic-win1256.hh
@@ -133,7 +133,6 @@
*/
#define OT_LOOKUP_TYPE_SUBST_SINGLE 1u
-#define OT_LOOKUP_TYPE_SUBST_MULTIPLE 2u
#define OT_LOOKUP_TYPE_SUBST_LIGATURE 4u
#define OT_SUBLOOKUP_SINGLE_SUBST_FORMAT2(Name, FromGlyphs, ToGlyphs) \
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic.cc
index ae908641271..ae908641271 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-arabic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-arabic.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-default.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-default.cc
index f7f097eedaa..f7f097eedaa 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-default.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-default.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-hangul.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-hangul.cc
index 6ac18b08bff..6ac18b08bff 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-hangul.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-hangul.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-hebrew.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-hebrew.cc
index c7b7a5eba6a..c7b7a5eba6a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-hebrew.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-hebrew.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-machine.hh
index f652d4fda73..f652d4fda73 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-machine.rl
index 694b235d1d1..694b235d1d1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-private.hh
index d8dfc6507d9..d8dfc6507d9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-table.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-table.cc
index 2e159a12b00..2e159a12b00 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic-table.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic-table.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic.cc
index 7723600410a..7723600410a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-indic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-indic.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar-machine.hh
index 29fdf9a1aef..29fdf9a1aef 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar-machine.rl
index 9649a916f02..9649a916f02 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar.cc
index d016380cc63..d016380cc63 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-myanmar.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-myanmar.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-private.hh
index e268933ce4c..e268933ce4c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea-machine.hh
index 15b862f5a13..15b862f5a13 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea-machine.rl
index 46140fc4d5f..46140fc4d5f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea.cc
index f08b7ccb9f4..f08b7ccb9f4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-sea.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-sea.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-thai.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-thai.cc
index feb7fc7a148..feb7fc7a148 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-thai.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-thai.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-tibetan.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-tibetan.cc
index 01465a426f8..01465a426f8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-complex-tibetan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-complex-tibetan.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-fallback-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-fallback-private.hh
index ec653513f1b..ec653513f1b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-fallback-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-fallback-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-fallback.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-fallback.cc
index 80d7da82f38..53274b502a5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-fallback.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-fallback.cc
@@ -441,13 +441,15 @@ _hb_ot_shape_fallback_kern (const hb_ot_shape_plan_t *plan,
OT::hb_apply_context_t c (1, font, buffer);
c.set_lookup_mask (plan->kern_mask);
c.set_lookup_props (OT::LookupFlag::IgnoreMarks);
+ OT::hb_apply_context_t::skipping_iterator_t &skippy_iter = c.iter_input;
+ skippy_iter.init (&c);
unsigned int count = buffer->len;
hb_glyph_info_t *info = buffer->info;
hb_glyph_position_t *pos = buffer->pos;
for (unsigned int idx = 0; idx < count;)
{
- OT::hb_apply_context_t::skipping_forward_iterator_t skippy_iter (&c, idx, 1);
+ skippy_iter.reset (idx, 1);
if (!skippy_iter.next ())
{
idx++;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-normalize-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-normalize-private.hh
index c744e26451d..c744e26451d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-normalize-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-normalize-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-normalize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-normalize.cc
index 4287253aed1..8cc64af0144 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-normalize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-normalize.cc
@@ -197,16 +197,17 @@ static inline void
decompose_current_character (const hb_ot_shape_normalize_context_t *c, bool shortest)
{
hb_buffer_t * const buffer = c->buffer;
+ hb_codepoint_t u = buffer->cur().codepoint;
hb_codepoint_t glyph;
/* Kind of a cute waterfall here... */
- if (shortest && c->font->get_glyph (buffer->cur().codepoint, 0, &glyph))
+ if (shortest && c->font->get_glyph (u, 0, &glyph))
next_char (buffer, glyph);
- else if (decompose (c, shortest, buffer->cur().codepoint))
+ else if (decompose (c, shortest, u))
skip_char (buffer);
- else if (!shortest && c->font->get_glyph (buffer->cur().codepoint, 0, &glyph))
+ else if (!shortest && c->font->get_glyph (u, 0, &glyph))
next_char (buffer, glyph);
- else if (decompose_compatibility (c, buffer->cur().codepoint))
+ else if (decompose_compatibility (c, u))
skip_char (buffer);
else
next_char (buffer, glyph); /* glyph is initialized in earlier branches. */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-private.hh
index 54ac2c3cf7c..54ac2c3cf7c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape.cc
index a0b503ab0f2..07adb04f678 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape.cc
@@ -676,7 +676,7 @@ hb_ot_hide_default_ignorables (hb_ot_shape_context_t *c)
pos[i].y_advance = 0;
}
else
- continue; /* Delete it. */
+ continue; /* Delete it. XXX Merge clusters? */
}
if (j != i)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape.h
index 1402f54acc5..1402f54acc5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-shape.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-shape.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-tag.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-tag.cc
index 878dd79b62c..878dd79b62c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-tag.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-tag.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-tag.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-tag.h
index 1bf12ab3c09..1bf12ab3c09 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot-tag.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot-tag.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot.h
index 47c92a58e4b..47c92a58e4b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ot.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ot.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-private.hh
index c92cdec5164..06b24a80f8d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-private.hh
@@ -94,22 +94,6 @@
# endif
#endif
-#if (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER)
-#define snprintf _snprintf
-/* Windows CE only has _strdup, while rest of Windows has both. */
-#define strdup _strdup
-#endif
-
-#ifdef _MSC_VER
-#undef inline
-#define inline __inline
-#endif
-
-#ifdef __STRICT_ANSI__
-#undef inline
-#define inline __inline__
-#endif
-
#if __GNUC__ >= 3
#define HB_FUNC __PRETTY_FUNCTION__
#elif defined(_MSC_VER)
@@ -134,14 +118,20 @@
# ifndef STRICT
# define STRICT 1
# endif
-#endif
-#ifdef _WIN32_WCE
-/* Some things not defined on Windows CE. */
-#define MemoryBarrier()
-#define getenv(Name) NULL
-#define setlocale(Category, Locale) "C"
+# if defined(_WIN32_WCE)
+ /* Some things not defined on Windows CE. */
+# define getenv(Name) NULL
+# define setlocale(Category, Locale) "C"
static int errno = 0; /* Use something better? */
+# elif defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
+# define getenv(Name) NULL
+# endif
+# if (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER)
+# define snprintf _snprintf
+ /* Windows CE only has _strdup, while rest of Windows has both. */
+# define strdup _strdup
+# endif
#endif
#if HAVE_ATEXIT
@@ -583,6 +573,30 @@ _hb_debug (unsigned int level,
#define DEBUG_LEVEL_ENABLED(WHAT, LEVEL) (_hb_debug ((LEVEL), HB_DEBUG_##WHAT))
#define DEBUG_ENABLED(WHAT) (DEBUG_LEVEL_ENABLED (WHAT, 0))
+static inline void
+_hb_print_func (const char *func)
+{
+ if (func)
+ {
+ unsigned int func_len = strlen (func);
+ /* Skip "static" */
+ if (0 == strncmp (func, "static ", 7))
+ func += 7;
+ /* Skip "typename" */
+ if (0 == strncmp (func, "typename ", 9))
+ func += 9;
+ /* Skip return type */
+ const char *space = strchr (func, ' ');
+ if (space)
+ func = space + 1;
+ /* Skip parameter list */
+ const char *paren = strchr (func, '(');
+ if (paren)
+ func_len = paren - func;
+ fprintf (stderr, "%.*s", func_len, func);
+ }
+}
+
template <int max_level> static inline void
_hb_debug_msg_va (const char *what,
const void *obj,
@@ -628,27 +642,13 @@ _hb_debug_msg_va (const char *what,
} else
fprintf (stderr, " " VRBAR LBAR);
- if (func)
- {
- unsigned int func_len = strlen (func);
-#ifndef HB_DEBUG_VERBOSE
- /* Skip "typename" */
- if (0 == strncmp (func, "typename ", 9))
- func += 9;
- /* Skip return type */
- const char *space = strchr (func, ' ');
- if (space)
- func = space + 1;
- /* Skip parameter list */
- const char *paren = strchr (func, '(');
- if (paren)
- func_len = paren - func;
-#endif
- fprintf (stderr, "%.*s: ", func_len, func);
- }
+ _hb_print_func (func);
if (message)
+ {
+ fprintf (stderr, ": ");
vfprintf (stderr, message, ap);
+ }
fprintf (stderr, "\n");
}
@@ -820,7 +820,7 @@ hb_in_range (T u, T lo, T hi)
/* The sizeof() is here to force template instantiation.
* I'm sure there are better ways to do this but can't think of
* one right now. Declaring a variable won't work as HB_UNUSED
- * is unsable on some platforms and unused types are less likely
+ * is unusable on some platforms and unused types are less likely
* to generate a warning than unused variables. */
ASSERT_STATIC (sizeof (hb_assert_unsigned_t<T>) >= 0);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set-private.hh
index 59e8f4559f5..acba4e946b6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set-private.hh
@@ -145,6 +145,8 @@ typedef hb_set_digest_combiner_t
struct hb_set_t
{
+ friend struct hb_frozen_set_t;
+
hb_object_header_t header;
ASSERT_POD ();
bool in_error;
@@ -326,7 +328,7 @@ struct hb_set_t
static const hb_codepoint_t INVALID = HB_SET_VALUE_INVALID;
elt_t &elt (hb_codepoint_t g) { return elts[g >> SHIFT]; }
- elt_t elt (hb_codepoint_t g) const { return elts[g >> SHIFT]; }
+ elt_t const &elt (hb_codepoint_t g) const { return elts[g >> SHIFT]; }
elt_t mask (hb_codepoint_t g) const { return elt_t (1) << (g & MASK); }
elt_t elts[ELTS]; /* XXX 8kb */
@@ -335,6 +337,59 @@ struct hb_set_t
ASSERT_STATIC (sizeof (elt_t) * 8 * ELTS > MAX_G);
};
+struct hb_frozen_set_t
+{
+ static const unsigned int SHIFT = hb_set_t::SHIFT;
+ static const unsigned int BITS = hb_set_t::BITS;
+ static const unsigned int MASK = hb_set_t::MASK;
+ typedef hb_set_t::elt_t elt_t;
+
+ inline void init (const hb_set_t &set)
+ {
+ start = count = 0;
+ elts = NULL;
+
+ unsigned int max = set.get_max ();
+ if (max == set.INVALID)
+ return;
+ unsigned int min = set.get_min ();
+ const elt_t &min_elt = set.elt (min);
+ const elt_t &max_elt = set.elt (max);
+
+ start = min & ~MASK;
+ count = max - start + 1;
+ unsigned int num_elts = (count + BITS - 1) / BITS;
+ unsigned int elts_size = num_elts * sizeof (elt_t);
+ elts = (elt_t *) malloc (elts_size);
+ if (unlikely (!elts))
+ {
+ start = count = 0;
+ return;
+ }
+ memcpy (elts, &min_elt, elts_size);
+ }
+
+ inline void fini (void)
+ {
+ if (elts)
+ free (elts);
+ }
+
+ inline bool has (hb_codepoint_t g) const
+ {
+ /* hb_codepoint_t is unsigned. */
+ g -= start;
+ if (unlikely (g > count)) return false;
+ return !!(elt (g) & mask (g));
+ }
+
+ elt_t const &elt (hb_codepoint_t g) const { return elts[g >> SHIFT]; }
+ elt_t mask (hb_codepoint_t g) const { return elt_t (1) << (g & MASK); }
+
+ private:
+ hb_codepoint_t start, count;
+ elt_t *elts;
+};
#endif /* HB_SET_PRIVATE_HH */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set.cc
index 59a0af46ed4..59a0af46ed4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set.h
index bafdae96333..bafdae96333 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-set.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-set.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan-private.hh
index 607da5e7791..607da5e7791 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan.cc
index 2166173f9e5..2166173f9e5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan.h
index 8f54552f90b..8f54552f90b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape-plan.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape-plan.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape.cc
index 9a59c085568..9a59c085568 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape.h
index 10a35cb517e..10a35cb517e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shape.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shape.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-impl-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-impl-private.hh
index 7844081e95b..7844081e95b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-impl-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-impl-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-list.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-list.hh
index 6c537d49215..6c537d49215 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-list.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-list.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-private.hh
index 29c4493943d..d1d1146dad2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper-private.hh
@@ -79,10 +79,9 @@ struct hb_shaper_data_t {
HB_SHAPER_DATA_DESTROY_FUNC (shaper, object) (HB_SHAPER_DATA_TYPE (shaper, object) *data)
#define HB_SHAPER_DATA_DESTROY(shaper, object) \
- if (object->shaper_data.shaper && \
- object->shaper_data.shaper != HB_SHAPER_DATA_INVALID && \
- object->shaper_data.shaper != HB_SHAPER_DATA_SUCCEEDED) \
- HB_SHAPER_DATA_DESTROY_FUNC (shaper, object) (HB_SHAPER_DATA (shaper, object));
+ if (HB_SHAPER_DATA_TYPE (shaper, object) *data = HB_SHAPER_DATA (shaper, object)) \
+ if (data != HB_SHAPER_DATA_INVALID && data != HB_SHAPER_DATA_SUCCEEDED) \
+ HB_SHAPER_DATA_DESTROY_FUNC (shaper, object) (data);
#define HB_SHAPER_DATA_ENSURE_DECLARE(shaper, object) \
static inline bool \
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper.cc
index 580b95c84b4..580b95c84b4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-shaper.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-shaper.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ucdn.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ucdn.cc
index 5b53821f923..5b53821f923 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-ucdn.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-ucdn.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode-private.hh
index a2c59da274a..a2c59da274a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode.cc
index fc19006d3eb..fc19006d3eb 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode.h
index 1c4e097b92d..1c4e097b92d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-unicode.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-unicode.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-uniscribe.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-uniscribe.cc
index e7bcad2ea86..e7bcad2ea86 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-uniscribe.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-uniscribe.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-uniscribe.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-uniscribe.h
index 001ab38ea87..001ab38ea87 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-uniscribe.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-uniscribe.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-utf-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-utf-private.hh
index 0b798a05c30..14d3c2e369b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-utf-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-utf-private.hh
@@ -29,14 +29,11 @@
#include "hb-private.hh"
-template <typename T, bool validate=true> struct hb_utf_t;
-
-/* UTF-8 */
-
-template <>
-struct hb_utf_t<uint8_t, true>
+struct hb_utf8_t
{
+ typedef uint8_t codepoint_t;
+
static inline const uint8_t *
next (const uint8_t *text,
const uint8_t *end,
@@ -131,11 +128,10 @@ struct hb_utf_t<uint8_t, true>
};
-/* UTF-16 */
-
-template <>
-struct hb_utf_t<uint16_t, true>
+struct hb_utf16_t
{
+ typedef uint16_t codepoint_t;
+
static inline const uint16_t *
next (const uint16_t *text,
const uint16_t *end,
@@ -204,11 +200,11 @@ struct hb_utf_t<uint16_t, true>
};
-/* UTF-32 */
-
-template <bool validate>
-struct hb_utf_t<uint32_t, validate>
+template <bool validate=true>
+struct hb_utf32_t
{
+ typedef uint32_t codepoint_t;
+
static inline const uint32_t *
next (const uint32_t *text,
const uint32_t *end HB_UNUSED,
@@ -246,4 +242,37 @@ struct hb_utf_t<uint32_t, validate>
};
+struct hb_latin1_t
+{
+ typedef uint8_t codepoint_t;
+
+ static inline const uint8_t *
+ next (const uint8_t *text,
+ const uint8_t *end HB_UNUSED,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement HB_UNUSED)
+ {
+ *unicode = *text++;
+ return text;
+ }
+
+ static inline const uint8_t *
+ prev (const uint8_t *text,
+ const uint8_t *start HB_UNUSED,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement)
+ {
+ *unicode = *--text;
+ return text;
+ }
+
+ static inline unsigned int
+ strlen (const uint8_t *text)
+ {
+ unsigned int l = 0;
+ while (*text++) l++;
+ return l;
+ }
+};
+
#endif /* HB_UTF_PRIVATE_HH */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-version.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-version.h.in
index 2517160d18b..2517160d18b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-version.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-version.h.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-warning.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-warning.cc
index e0f88e2d4ad..e0f88e2d4ad 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb-warning.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb-warning.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb.h
index c5a938a3818..c5a938a3818 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/hb.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/hb.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/main.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/main.cc
index f9708cc948e..f9708cc948e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/main.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/main.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-buffer-serialize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-buffer-serialize.cc
index 18c46e9524b..18c46e9524b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-buffer-serialize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-buffer-serialize.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-size-params.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-size-params.cc
index 35d9e3c8e25..35d9e3c8e25 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-size-params.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-size-params.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-would-substitute.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-would-substitute.cc
index 8ea87cdf397..8ea87cdf397 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test-would-substitute.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test-would-substitute.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test.cc
index a8fe046f34c..a8fe046f34c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.38/src/test.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.39/src/test.cc
diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac
index c4c27f9ba56..fca9da7ebb9 100644
--- a/Build/source/libs/harfbuzz/version.ac
+++ b/Build/source/libs/harfbuzz/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [0.9.38])
+m4_define([harfbuzz_version], [0.9.39])