summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog')
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog2551
1 files changed, 2551 insertions, 0 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
index db86a790269..f17b65012f5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
@@ -1,3 +1,2554 @@
+commit aee123fc83388b8f5acfb301d87bd92eccc5b843
+Author: Khaled Hosny <khaled@aliftype.com>
+Date: Fri May 20 21:07:25 2022 +0200
+
+ 4.3.0
+
+ NEWS | 17 +++++++++++++++++
+ configure.ac | 2 +-
+ docs/harfbuzz-docs.xml | 1 +
+ meson.build | 2 +-
+ src/hb-map.cc | 2 +-
+ src/hb-version.h | 6 +++---
+ 6 files changed, 24 insertions(+), 6 deletions(-)
+
+commit 975a5f919467c9bc4cad1340ebf07ae32bf07e14
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 20 12:34:49 2022 -0600
+
+ [array] Use hb_memcmp instead of memcmp
+
+ Fixes ubsan error.
+
+ src/hb-array.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 55804e8d68af0685867d20a1796b952c6ff8db60
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 20 11:40:44 2022 -0600
+
+ [hb-ft] Minor rearrange of struct members
+
+ To make clear what members the lock protects.
+
+ src/hb-ft.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 4e11da054d2c527fa64b33d49b33e3aa6b49077c
+Author: Garret Rieger <grieger@google.com>
+Date: Fri May 20 01:42:34 2022 +0000
+
+ [repacker] update repacker test golden file.
+
+ Changed due to removal of Kahn sorting.
+
+ test/api/fonts/repacker_expected.otf | Bin 1400 -> 1400 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit cbf8f44c9b6de43387c61fdd43cf6bf0b89c3c08
+Author: Garret Rieger <grieger@google.com>
+Date: Thu May 19 21:25:21 2022 +0000
+
+ [subset-perf] swap instead of copying vertice's when reordering during sort.
+
+ src/hb-repacker.hh | 22 ++++++++++++++++------
+ src/hb-serialize.hh | 11 ++++++++++-
+ 2 files changed, 26 insertions(+), 7 deletions(-)
+
+commit b32ca2a292f256a40e445990f104f09c5920d0bd
+Author: Garret Rieger <grieger@google.com>
+Date: Thu May 19 20:45:39 2022 +0000
+
+ [subset-perf] remove sort_kahn from repacker.
+
+ Without an optimized FIFO queue implementation it's nearly as slow as the now optimized sort_shortest_distance.
+
+ src/hb-repacker.hh | 53 ---------------------------------
+ src/test-repacker.cc | 84 ----------------------------------------------------
+ 2 files changed, 137 deletions(-)
+
+commit 4266cf3be266aef27a5d60530860915c68ba03e1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 18:15:46 2022 -0600
+
+ [array] Specialize operator== for bytes_t and ubytes_t
+
+ src/hb-array.hh | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+commit 6eaa22e9d71d2b09d4bd211026194d618dcc8aad
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 18:00:58 2022 -0600
+
+ [serialize] Reduce link_t size from 16 to 12
+
+ src/hb-serialize.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 30ba9a39e2249b86310c36564373f4f0347012e1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 17:34:58 2022 -0600
+
+ [vector] Add emplacing push implementation
+
+ src/hb-vector.hh | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+commit 25393288f0d6b98355bc4b72bce15ab6f77a5b0e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 17:19:21 2022 -0600
+
+ [test] Fix compiler warning
+
+ test/api/test-set.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 73b8360dcfb57eaa9acffc7967015a113421eeda
+Author: Garret Rieger <grieger@google.com>
+Date: Thu May 19 22:59:51 2022 +0000
+
+ [subset] fix fuzzer found underflow when heap push fails.
+
+ Fixes https://oss-fuzz.com/testcase-detail/5148625505746944.
+
+ src/hb-priority-queue.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit f1bf14ea89ea082e5edd4e9c90738370bffcab1c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 16:42:35 2022 -0600
+
+ Revert "[set] Cache hash value"
+
+ This reverts commit 44952bcc259a906b8875ed62dc40de96ade8b95c.
+
+ While we investivate https://github.com/harfbuzz/harfbuzz/issues/3599
+
+ src/hb-bit-set.hh | 22 +---------------------
+ 1 file changed, 1 insertion(+), 21 deletions(-)
+
+commit b4d1ec310cd2c8a6e250c71f865c45fe7cadd5fa
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 16:06:21 2022 -0600
+
+ [algs] Declare coerce() as constexpr
+
+ src/hb-algs.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 2fdb7616f589ebb9fc060fdb88745e0219a78a14
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 16:00:43 2022 -0600
+
+ [map Further adjust hash function
+
+ src/hb-map.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 01fc90b68c023d380f3cd44e13b21972b3a41dcf
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 16:00:06 2022 -0600
+
+ [map] Adjust hash function
+
+ src/hb-map.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a47b0aebf5f8d56dd78ddd651d40727b729a7577
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:52:00 2022 -0600
+
+ [vector] Fix remove() implementation
+
+ test-vector under valgrind happy now.
+
+ src/hb-vector.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3bd755c32dc7c6ba189783daf89e4cde81715483
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:51:18 2022 -0600
+
+ [test-vector] Test remove()
+
+ Currently buggy. Valgrind confirms.
+
+ src/test-vector.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 58f848daa8f596007a8dadee3fcb462548def980
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:42:54 2022 -0600
+
+ [set/map] Adjust hash function return type
+
+ src/hb-bit-page.hh | 8 ++++----
+ src/hb-bit-set-invertible.hh | 2 +-
+ src/hb-bit-set.hh | 6 +++---
+ src/hb-map.hh | 4 ++--
+ src/hb-set.hh | 2 +-
+ 5 files changed, 11 insertions(+), 11 deletions(-)
+
+commit 6544fc284f55ec1d3199bc610eeac39af935df9c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:28:09 2022 -0600
+
+ [vector] Add further copy implementation
+
+ src/hb-vector.hh | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+commit c19f1169521c6fa95c690285a3d24123f387a98e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:27:52 2022 -0600
+
+ [meta] Remove non-existing gcc4 trait implementation
+
+ src/hb-meta.hh | 2 --
+ src/hb-vector.hh | 2 +-
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+commit 679b900e9b27fdecb9a694c58f71e7bc9e2cd125
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:27:32 2022 -0600
+
+ [meta] Fix gcc4 trait implementation
+
+ src/hb-meta.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit fb77f48ffd3fe7fcd17843b9cdc6ca677d36602c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:02:10 2022 -0600
+
+ [vector] Optimize vector copy
+
+ src/hb-meta.hh | 4 ++++
+ src/hb-vector.hh | 30 ++++++++++++++++++++++++++++--
+ 2 files changed, 32 insertions(+), 2 deletions(-)
+
+commit 28b44ac46a24f6987d2c2565e0ac72d5b2763d81
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:01:56 2022 -0600
+
+ [set] Switch set copy to vector operator =
+
+ Slows it down currently.
+
+ src/hb-bit-set.hh | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit 37d3275dec01edfafe2cc744ed85a3febb964594
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 15:01:23 2022 -0600
+
+ [test-vector] Enable disabled test
+
+ This seems to work already.
+
+ src/test-vector.cc | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 544ffb913ea515fae77f26714a1c7c620cdab0ed
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 14:50:12 2022 -0600
+
+ [set] Adjust grow_vector condition
+
+ src/hb-vector.hh | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 0623aa598ba6a7cc14d00091935bc8811b3c6aac
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 14:12:42 2022 -0600
+
+ [benchmark-set] Add benchmark for set copy
+
+ perf/benchmark-set.cc | 23 +++++++++++++++++++++++
+ src/hb-set.hh | 8 ++++----
+ 2 files changed, 27 insertions(+), 4 deletions(-)
+
+commit 44952bcc259a906b8875ed62dc40de96ade8b95c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 14:02:48 2022 -0600
+
+ [set] Cache hash value
+
+ src/hb-bit-set.hh | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+commit 844ac328e46f9bfcc5481f2dd525603c9a448ffe
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 13:54:31 2022 -0600
+
+ [set] Fix hb_set_t hash stability
+
+ src/hb-bit-page.hh | 2 +-
+ src/hb-bit-set.hh | 6 ++++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+commit 2d0b1248b23c9eb931c013a35daec62c48ee293f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 13:53:53 2022 -0600
+
+ [test-map] Test hb_set_t hash stability
+
+ Fails currently.
+
+ src/test-map.cc | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 561e02fefb72be902482fc49dcec66b4c585b798
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 13:38:52 2022 -0600
+
+ [map] Make hb_map_t hashable
+
+ src/hb-map.hh | 8 ++++++++
+ src/test-map.cc | 21 +++++++++++----------
+ 2 files changed, 19 insertions(+), 10 deletions(-)
+
+commit ad176990895963c1b83274d0ef3c5ae148a4f760
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 13:36:12 2022 -0600
+
+ [map] Add is_equal() / towards making hb_map_t hashable
+
+ New API:
+ + hb_map_is_equal()
+
+ docs/harfbuzz-sections.txt | 1 +
+ src/hb-map.cc | 20 ++++++++++++++++++++
+ src/hb-map.h | 4 ++++
+ src/hb-map.hh | 15 +++++++++++++++
+ src/test-map.cc | 24 ++++++++++++++++++++++++
+ 5 files changed, 64 insertions(+)
+
+commit 14a24d8e3f7d9b8379452b1596e4aff6603e1f25
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 13:03:50 2022 -0600
+
+ [vector] Make hb_vector_t hashable
+
+ src/hb-vector.hh | 1 +
+ src/test-map.cc | 26 ++++++++++++++++++++++++++
+ 2 files changed, 27 insertions(+)
+
+commit 124f9aeb9b4c77fe1e2a733c5aceb9172d169f9f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 19 12:58:02 2022 -0600
+
+ [set] Make hb_set_t hashable
+
+ src/hb-bit-page.hh | 7 +++++++
+ src/hb-bit-set-invertible.hh | 2 ++
+ src/hb-bit-set.hh | 6 ++++++
+ src/hb-set.hh | 4 ++++
+ src/test-map.cc | 23 +++++++++++++++++++++++
+ 5 files changed, 42 insertions(+)
+
+commit 3ab2c7935f5b9706e4767a6e28ff1dcd739ac271
+Author: Garret Rieger <grieger@google.com>
+Date: Thu May 19 17:23:36 2022 +0000
+
+ [subset-perf] Signficiantly speed up ClassDef*::subset.
+
+ Eliminates the usage of a glyph -> klass hash map and replaces it with a vector storing the mapping. This allows us to use the vector directly as the iterator driving the serialize. Approximately 1% speedup for Noto Nastaliq.
+
+ src/hb-ot-layout-common.hh | 72 ++++++++++++++++++++++------------------------
+ 1 file changed, 35 insertions(+), 37 deletions(-)
+
+commit e3e685e5eec1cb400e0b4bd371872cb9394c79bc
+Author: David Corbett <corbett.dav@northeastern.edu>
+Date: Wed May 18 15:05:55 2022 -0400
+
+ [ot-tags] Fix `min_subtag_len` calculations
+
+ src/gen-tag-table.py | 12 +++++-------
+ src/hb-ot-tag-table.hh | 3 +--
+ 2 files changed, 6 insertions(+), 9 deletions(-)
+
+commit 0b1c2ff96a333a3e78eeefe54cb9e9509120990a
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 18 23:32:03 2022 +0000
+
+ [subset-perf] Remove extra map lookup in ClassDef subset methods.
+
+ src/hb-ot-layout-common.hh | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+commit 13ace77f1daaf94d79ad400e3943f71fa5139e70
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 18 22:38:43 2022 +0000
+
+ [subset-perf] Use glyph_map instead of set in ClassDefFormat.
+
+ src/hb-ot-layout-common.hh | 29 +++++++++++++++--------------
+ 1 file changed, 15 insertions(+), 14 deletions(-)
+
+commit adae2f2272bf51c6b4df2ba5d0e10eb25386e58c
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 18 21:42:28 2022 +0000
+
+ [subset-perf] Cache a glyph map for gsub.
+
+ This allows us in some cases to avoid using glyph_set_gsub as a filter.
+
+ src/hb-ot-layout-common.hh | 8 +++-----
+ src/hb-subset-plan.cc | 21 +++++++++++++++++++++
+ src/hb-subset-plan.hh | 1 +
+ 3 files changed, 25 insertions(+), 5 deletions(-)
+
+commit 202e6c469963fe76f3320a956be8b194adb9089d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 17:12:43 2022 -0600
+
+ [subset] Remove unnecessary test
+
+ src/hb-ot-layout-gsubgpos.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit cedf739646d67e73c06e2569d4be2d7f32e39fd8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 16:52:35 2022 -0600
+
+ Add some commented-out code
+
+ src/hb-ot-layout-common.hh | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+commit 6b62c10f0228d011526ef41772a65e6f12022ddb
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 16:27:54 2022 -0600
+
+ [priority-queue] Remove old init/fini
+
+ src/hb-priority-queue.hh | 7 -------
+ 1 file changed, 7 deletions(-)
+
+commit bff8248a9d44654d7901150e86e684af0cfa8681
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 16:25:03 2022 -0600
+
+ [repacker] Pre-alloc vertices
+
+ src/hb-repacker.hh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 39a424caf04392702b62950c832fd1f67204ba62
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 16:17:16 2022 -0600
+
+ [priority-queue] Optimize heap access
+
+ src/hb-priority-queue.hh | 18 ++++++++++++------
+ src/test-priority-queue.cc | 8 --------
+ 2 files changed, 12 insertions(+), 14 deletions(-)
+
+commit 9308659fd76bb400da2c869ca2f945760adfaf56
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 16:14:25 2022 -0600
+
+ [priority-queue] Optimize swap()
+
+ src/hb-priority-queue.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit c7317ef7617a1387c88db19582f1b9879a722d7a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 16:03:41 2022 -0600
+
+ [repacker] Avoid destroying and recreating objects
+
+ src/hb-repacker.hh | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 864e09a0c460916c06d8becbc3480d06692cd634
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 15:59:29 2022 -0600
+
+ [repacker] Reuse allocated vector
+
+ src/hb-repacker.hh | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit ca77f164704c6463b09d973251f6f9995172d8c1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 15:55:49 2022 -0600
+
+ [repacker] Remove unnecessary vector .fini() calls
+
+ src/hb-repacker.hh | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 4cfc2d668e3df53a6564cef1be65ad0239470123
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 15:32:19 2022 -0600
+
+ [subset] Use a std::move on set_t when feasible
+
+ src/hb-ot-layout-gsubgpos.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1f578b5a32337011766e078331c0ba8ce4ce8af8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 15:24:40 2022 -0600
+
+ [set] Add pre-allocation internal API
+
+ src/hb-bit-set-invertible.hh | 1 +
+ src/hb-bit-set.hh | 7 +++++++
+ src/hb-set.hh | 1 +
+ 3 files changed, 9 insertions(+)
+
+commit 48dfbd54a3c9876e86bcdbeb47ae42300ee9f08f
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 18 21:03:56 2022 +0000
+
+ [subset] minor cleanup.
+
+ src/hb-ot-layout-common.hh | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit 482c6e5dc41402e60acf609fca0d9d8e8fbc4d9d
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 18 19:58:55 2022 +0000
+
+ [subset-perf] Speed up Coverage::serialize by caching iterator.
+
+ src/hb-ot-layout-common.hh | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit 14b18725f04bba0dac6da943244230c65d3879d4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 15:14:32 2022 -0600
+
+ In Coverage::iter_t, assume iterators are from same Coverage object
+
+ No need to support otherwise.
+
+ src/hb-ot-layout-common.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 27141735c3e8caa807c3528ce9793b8c8f05a556
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 15:12:49 2022 -0600
+
+ [subset] Add Coverage::__end__ implementation
+
+ src/hb-ot-layout-common.hh | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+commit c476f58adba6680c655cb7bcbdd28d3bd4b7ad37
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 14:20:23 2022 -0600
+
+ [subset] Write CoverageFormat2::intersects_coverage() as bsearch()
+
+ src/hb-ot-layout-common.hh | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+commit 63c6695108ceb19b4b79e00782c3106801d7dc01
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 13:53:52 2022 -0600
+
+ [ot-layout] Cosmetic
+
+ The implementation of HBUINT16 operator == is slower than just
+ comparing to ints.
+
+ src/hb-ot-layout-common.hh | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 777debd748dfd803bbd16bcc1bbf2afd7db2fc82
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 13:46:06 2022 -0600
+
+ [subset] Rewrite CoverageFormat2::intersects as dagger
+
+ src/hb-ot-layout-common.hh | 10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+commit cf5001fac7770286082ced9d3c5c5fefa3b19d79
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 13:38:29 2022 -0600
+
+ [subset] Optimize CoverageFormat2::intersected_coverage_glyphs
+
+ src/hb-ot-layout-common.hh | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 6f37c2079815bc0ac9193c8e9028da4872374402
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 13:25:42 2022 -0600
+
+ [subset] Minor rewrite in CoverageFormat2::serialize()
+
+ src/hb-ot-layout-common.hh | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+commit e91863b7173543b850e1758873f96c76c67f8ce8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 12:39:55 2022 -0600
+
+ [subset-cff] Pre-size map in subr_remap_t::create()
+
+ src/hb-bimap.hh | 6 ++++++
+ src/hb-subset-cff-common.hh | 1 +
+ 2 files changed, 7 insertions(+)
+
+commit ce60462173c7d22f9bad8531a2490a551f004197
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 12:34:27 2022 -0600
+
+ [subset-plan] Pre-size maps in _create_old_gid_to_new_gid_map()
+
+ src/hb-subset-plan.cc | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+commit f82ee17a75dda53ac5c506136221b93eed53aee1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 12:17:43 2022 -0600
+
+ [map] Pre-size map in constructor if we can
+
+ src/hb-map.hh | 13 ++++++++-----
+ src/hb-ot-cmap-table.hh | 4 ++--
+ 2 files changed, 10 insertions(+), 7 deletions(-)
+
+commit b5aa8a27eac851503eaee086912f269b51e68724
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:58:58 2022 -0600
+
+ [subset-cff] Cosmetic
+
+ src/hb-subset-cff-common.hh | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 0b201623f54420a898d3538c8673b450923bcac1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:58:22 2022 -0600
+
+ [subset-cff] Fix previous commit
+
+ Oops!
+
+ src/hb-subset-cff-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4792309265ea17aea0c5fd6821ed453fe8427ab4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:54:08 2022 -0600
+
+ [subset-cff] Access vector directly
+
+ src/hb-subset-cff-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 7c86f2e763e44b4c96cd26f1ce06225b4aba977f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:45:27 2022 -0600
+
+ [subset-cff] Pre-alloc out buffer
+
+ src/hb-subset-cff-common.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 0761e7cdfd00d5347657bdf009c3035be4ebab44
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:37:57 2022 -0600
+
+ [subset-cff] Avoid resetting buffer as encoder does
+
+ src/hb-subset-cff-common.hh | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit 71aa10a3942081f2c4ce0c2c5d4c3897d13d887c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:37:24 2022 -0600
+
+ [subset-cff] Manually grow vector to avoid memset overhead
+
+ src/hb-subset-cff-common.hh | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+commit f455cc53fd4a30682c549fcad6d4112b98688aca
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:31:55 2022 -0600
+
+ [subset-cff] Reuse buffer allocation
+
+ src/hb-subset-cff-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3e4ab2ad9c2de17218c16787b59d63c236262d8f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:16:46 2022 -0600
+
+ [perf/benchmark-ot] Add zh-hans
+
+ perf/benchmark-ot.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 6e668a2adefdc186dcd300136b3535c43d6fdffd
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:16:11 2022 -0600
+
+ [perf/benchmark-ot] Rename test
+
+ perf/benchmark-ot.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e24797aeac65aaa1edd836bf9708f488044d3939
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:10:10 2022 -0600
+
+ [ot-tags] Follow-up to previous commit
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ src/gen-tag-table.py | 16 ++++++++--------
+ src/hb-ot-tag-table.hh | 18 +++++++++---------
+ 2 files changed, 17 insertions(+), 17 deletions(-)
+
+commit f5d619be79e9f23f67f23513e60c546fc498f1b8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 18 11:04:52 2022 -0600
+
+ [ot-tags] Further gate the slow complex case, and add more tests
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ Still 'zh-trad' is the slowest case.
+
+ --------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ --------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_trad 136 ns 136 ns 5107838
+ BM_hb_ot_tags_from_script_and_language/COMMON ab_abcd 115 ns 115 ns 6103104
+ BM_hb_ot_tags_from_script_and_language/COMMON ab_abc 25.4 ns 25.3 ns 27674482
+ BM_hb_ot_tags_from_script_and_language/COMMON abcdef_XY 20.2 ns 20.1 ns 34795719
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 19.4 ns 19.3 ns 36390401
+ BM_hb_ot_tags_from_script_and_language/COMMON cxy_CN 33.5 ns 33.4 ns 20998939
+ BM_hb_ot_tags_from_script_and_language/COMMON exy_CN 25.1 ns 25.0 ns 27705832
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 34.2 ns 34.1 ns 20564356
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 15.5 ns 15.5 ns 45032204
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 15.9 ns 15.8 ns 44412379
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.72 ns 4.71 ns 149101665
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.72 ns 4.70 ns 149254498
+
+ perf/benchmark-ot.cc | 3 +++
+ src/gen-tag-table.py | 3 +++
+ src/hb-ot-tag-table.hh | 3 +++
+ 3 files changed, 9 insertions(+)
+
+commit 9c64bda21dd4215a3caa32e4127d9f2017e50de2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 17:31:18 2022 -0600
+
+ [ot-tag] Whitespace
+
+ src/hb-ot-tag.cc | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit 3df8017e9b7ea2b72477294133563b4ff304a007
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 17:29:39 2022 -0600
+
+ [ot-tag] Optimize subtag_matches() more
+
+ src/gen-tag-table.py | 2 +-
+ src/hb-ot-tag-table.hh | 112 ++++++++++++++++++++++++-------------------------
+ src/hb-ot-tag.cc | 5 +--
+ 3 files changed, 59 insertions(+), 60 deletions(-)
+
+commit b231fc2dbcee402d1cff578371f9ad89ff594bb2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 17:02:48 2022 -0600
+
+ [perf/benchmark-ot] Add a couple more test cases
+
+ perf/benchmark-ot.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 3524b14fa06dbf9caddef1d2f598e2f4f46315c1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 17:02:48 2022 -0600
+
+ [perf/benchmark-ot] Add a couple more test cases
+
+ perf/benchmark-ot.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 7f6e8c5536fd13a56b4bd030233960aa1af38d05
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 16:58:35 2022 -0600
+
+ [ot-tags] Optimize subtag_matches() further
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ Comparing before to after
+ Benchmark Time CPU Time Old Time New CPU Old CPU New
+ ----------------------------------------------------------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY -0.3371 -0.3371 71 47 71 47
+
+ src/hb-ot-tag.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 27c11405a263ad43d24e2ed460e15f247ac06d17
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 16:51:51 2022 -0600
+
+ [ot-tag] Optimize subtag_matches
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ src/hb-ot-tag.cc | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit a07d818597385c6d83265f8320b9c1334c539758
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 16:46:10 2022 -0600
+
+ [ot-tag] Add a likely() to the cache hit case
+
+ src/hb-ot-tag.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0ff5d36cd451dffe51a8c0637b4a544882663a1d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 16:34:52 2022 -0600
+
+ [perf/benchmark-ot] Fix benchmark
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ Ouch!
+
+ These are the current numbers:
+
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 78.0 ns 77.7 ns 8917912
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 44.9 ns 44.8 ns 15475318
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 17.6 ns 17.5 ns 39812340
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 18.2 ns 18.1 ns 38356204
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.76 ns 4.74 ns 148746131
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.73 ns 4.71 ns 148421349
+
+ perf/benchmark-ot.cc | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+commit dfca47f419b6ef5c6df813822e4b10a7cec92434
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 16:21:02 2022 -0600
+
+ [ot-tag] Cache last bsearch result
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ Humm. Looks like not all of the fat is bsearch overhead now. I cached
+ the last bsearch result, but most of the time is still there. I'm
+ baffled.
+
+ Before:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.08 ns 8.05 ns 84500482
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 42.2 ns 42.1 ns 16722006
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 16.1 ns 16.0 ns 43461527
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 16.5 ns 16.5 ns 42448505
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.34 ns 4.33 ns 161290530
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.34 ns 4.33 ns 162339799
+
+ After:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.13 ns 8.11 ns 80438134
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 40.0 ns 39.9 ns 17487939
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 12.7 ns 12.7 ns 55124394
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 13.1 ns 13.0 ns 53660125
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.61 ns 4.60 ns 151394104
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.70 ns 4.68 ns 150402847
+
+ src/hb-ot-tag.cc | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 909f00ac6e6b3eb459f0553b84fe508bb697e9af
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 15:51:41 2022 -0600
+
+ [ot-tags] Further speed up language bsearch()
+
+ Using an integer tag to bsearch, instead of string.
+
+ Part of: https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ Before:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.11 ns 8.08 ns 87067795
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 53.6 ns 53.5 ns 13042418
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 24.2 ns 24.1 ns 29052731
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 24.4 ns 24.3 ns 28736769
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.43 ns 4.41 ns 160370413
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.35 ns 4.34 ns 160578191
+
+ After:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 7.97 ns 7.95 ns 85208363
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 41.7 ns 41.6 ns 16945817
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 16.1 ns 16.0 ns 43613523
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 16.5 ns 16.4 ns 42568107
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.30 ns 4.29 ns 164055469
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.29 ns 4.27 ns 163793591
+
+ src/gen-tag-table.py | 2 +-
+ src/hb-ot-tag-table.hh | 3206 ++++++++++++++++++++++++------------------------
+ src/hb-ot-tag.cc | 29 +-
+ 3 files changed, 1622 insertions(+), 1615 deletions(-)
+
+commit c460cf74ce2a3ebe5d285e03dc122fb60ff70e01
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 15:30:11 2022 -0600
+
+ [ot-tags] Cosmetic
+
+ src/hb-ot-tag.cc | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit 1c8226ed14c1ac7d82ea5482bdf2a7d019dd38a2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 15:28:50 2022 -0600
+
+ Fix compiler warning
+
+ On Mac compiler:
+
+ FAILED: src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o
+ c++ -Isrc/libharfbuzz.0.dylib.p -Isrc -I../src -I. -I.. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/graphite2/1.3.14/include -I/usr/local/Cellar/glib/2.72.1/include/glib-2.0 -I/usr/local/Cellar/glib/2.72.1/lib/glib-2.0/include -I/usr/local/opt/gettext/include -I/usr/local/Cellar/pcre/8.45/include -Xclang -fcolor-diagnostics --coverage -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++11 -fno-rtti -O2 -g -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -DHAVE_CONFIG_H -Wno-non-virtual-dtor -MD -MQ src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o -MF src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o.d -o src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o -c ../src/hb-ot-tag.cc
+ In file included from ../src/hb-ot-tag.cc:29:
+ In file included from ../src/hb.hh:481:
+ ../src/hb-array.hh:359:14: error: missing default argument on parameter 'ds'
+ Ts... ds) const
+ ^
+ ../src/hb-ot-tag.cc:292:58: note: in instantiation of function template specialization 'hb_sorted_array_t<const LangTag>::bfind<const char *, unsigned int>' requested here
+ if (hb_sorted_array (ot_languages, ot_languages_len).bfind (lang_str, &tag_idx,
+ ^
+ 1 error generated.
+
+ src/hb-array.hh | 9 ++++-----
+ src/hb-ot-tag.cc | 4 +---
+ 2 files changed, 5 insertions(+), 8 deletions(-)
+
+commit c1f4b57c064d41a291976e6d126f7bf0f6e66bc9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 15:19:40 2022 -0600
+
+ [ot-tags] Optimize language comparison
+
+ Now that we know both strings are of equal len of 2 or 3, optimize.
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ Before:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.50 ns 8.47 ns 81221549
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 79.6 ns 79.3 ns 8785804
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 40.0 ns 39.9 ns 17462768
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 39.2 ns 39.1 ns 17886793
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.31 ns 4.30 ns 162805417
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.32 ns 4.31 ns 162656688
+
+ After:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.27 ns 8.24 ns 81868701
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 56.1 ns 56.0 ns 12353284
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 24.3 ns 24.2 ns 28955030
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 24.5 ns 24.4 ns 28664868
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.35 ns 4.34 ns 161190014
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.36 ns 4.34 ns 161319000
+
+ src/hb-array.hh | 14 ++++++++------
+ src/hb-ot-tag.cc | 19 ++++++-------------
+ 2 files changed, 14 insertions(+), 19 deletions(-)
+
+commit dde48d78c1e1c11f3c770491a1d618386b3d92f8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 15:07:49 2022 -0600
+
+ Fix compiler warning
+
+ src/hb-ot-tag.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 15be0deda03f68c0260d07bdc67c8952aa6ccfa7
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 14:57:08 2022 -0600
+
+ [ot-tags] Optimize lang_matches()
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ Before:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.67 ns 8.64 ns 80324382
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 91.2 ns 90.9 ns 7674131
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 41.1 ns 41.0 ns 17174093
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 41.3 ns 41.2 ns 17000876
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.56 ns 4.55 ns 153914130
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.53 ns 4.52 ns 153830303
+
+ After:
+ ------------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ------------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.24 ns 8.21 ns 84078465
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 77.5 ns 77.2 ns 9059230
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 38.8 ns 38.7 ns 17790692
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 37.6 ns 37.5 ns 18648293
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.50 ns 4.49 ns 155573267
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.49 ns 4.47 ns 156456653
+
+ src/gen-tag-table.py | 2 +-
+ src/hb-ot-tag-table.hh | 126 ++++++++++++++++++++++++-------------------------
+ src/hb-ot-tag.cc | 11 +++--
+ 3 files changed, 70 insertions(+), 69 deletions(-)
+
+commit 407a135baf8ccd53cf1bc3502f3216f3dbcf3328
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 14:45:45 2022 -0600
+
+ [perf/benchmark-ot] Add one more test
+
+ perf/benchmark-ot.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit dd3c858f84105021cf1e427399b971bf26dde8b3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 14:28:28 2022 -0600
+
+ [ot-tags] Speed up hb_ot_tags_from_language()
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ "After that, bulk of the time I suppose is spent in binary-searching the
+ language table. I suggest we split the language table in 2-letter and
+ 3-letter tags, to speed-up the vast majority of cases that are
+ 2-letter."
+
+ benchmark-ot, before:
+
+ ----------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ----------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 112 ns 111 ns 6286271
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 60.6 ns 60.4 ns 11671176
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 61.3 ns 61.1 ns 11442645
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.75 ns 4.74 ns 146997235
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.65 ns 4.64 ns 150938747
+
+ After:
+
+ ----------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ----------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 89.5 ns 89.2 ns 7747649
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 38.5 ns 38.4 ns 18199432
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 39.0 ns 38.9 ns 18049238
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.53 ns 4.52 ns 154895110
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.54 ns 4.52 ns 154762105
+
+ src/gen-tag-table.py | 55 +++----
+ src/hb-ot-tag-table.hh | 409 +++++++++++++++++++++++++------------------------
+ src/hb-ot-tag.cc | 45 ++++--
+ 3 files changed, 270 insertions(+), 239 deletions(-)
+
+commit 9baccb986087319ae56e77624082036063d67d90
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 13:34:34 2022 -0600
+
+ [ot-tags] Speed up hb_ot_tags_from_complex_language()
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/3591
+
+ 2. All the subtag_matches outside the switch match long strings (>= 6 or so).
+ As such, check the tag for such length before going into any of them.
+
+ benchmark-ot, before:
+
+ ----------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ----------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 172 ns 171 ns 4083155
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 120 ns 119 ns 5849947
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 113 ns 112 ns 5840326
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.66 ns 4.64 ns 151396224
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.66 ns 4.64 ns 149019593
+
+ After:
+
+ ----------------------------------------------------------------------------------------------
+ Benchmark Time CPU Iterations
+ ----------------------------------------------------------------------------------------------
+ BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 112 ns 112 ns 6357763
+ BM_hb_ot_tags_from_script_and_language/COMMON en_US 60.5 ns 60.3 ns 11475091
+ BM_hb_ot_tags_from_script_and_language/LATIN en_US 54.9 ns 54.8 ns 12575690
+ BM_hb_ot_tags_from_script_and_language/COMMON none 4.61 ns 4.59 ns 152388450
+ BM_hb_ot_tags_from_script_and_language/LATIN none 4.66 ns 4.64 ns 151497600
+
+ src/gen-tag-table.py | 41 +++++++++++-----
+ src/hb-ot-tag-table.hh | 126 +++++++++++++++++++++++++------------------------
+ 2 files changed, 95 insertions(+), 72 deletions(-)
+
+commit 26d906b88b324ea953f42acf1b82086cc4ad3642
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 17 13:12:17 2022 -0600
+
+ [perf] Add benchmark-ot
+
+ perf/Makefile.am | 1 +
+ perf/benchmark-ot.cc | 35 +++++++++++++++++++++++++++++++++++
+ perf/meson.build | 10 ++++++++++
+ 3 files changed, 46 insertions(+)
+
+commit 629fa8ee87a419c3a2f6b1477d7ecd81571f0d7e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 17:44:50 2022 -0600
+
+ [perf/benchmark-font] Test Roboto as variable even though it's not
+
+ perf/benchmark-font.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 71a0cda869f55c00727fdbbf079b671f7fe374ff
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 17:43:48 2022 -0600
+
+ [perf/benchmark-font] Only certain fonts are variable
+
+ Don't test every font as variable.
+
+ perf/benchmark-font.cc | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+commit fb413f52022aa2edb8a5b64e9d28f826a161d0aa
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 17:08:43 2022 -0600
+
+ [subset/cff] Don't use bitfields for hot bools
+
+ The struct has room because of alignment, and these bools are hot.
+
+ src/hb-subset-cff-common.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit a4d98b63ea59f17ef5e4795f6048f9cd6baa4340
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 17:02:40 2022 -0600
+
+ [subset/cff1] Collect glyph-to-sid map to avoid an O(n^2) algorithm
+
+ Saves 13 for largest benchmark:
+
+ BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/10000 -0.1313 -0.1308 75 65 75 65
+
+ BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/4096 -0.1009 -0.1004 54 48 54 48
+ BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/10000 -0.1067 -0.1066 70 62 69 62
+
+ src/hb-ot-cff1-table.hh | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-subset-cff1.cc | 8 +++++++-
+ 2 files changed, 53 insertions(+), 2 deletions(-)
+
+commit b87f48e948077297b823ac929e950d4188ec627d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 16:33:31 2022 -0600
+
+ [cff1] get_sid() move bounds check into each implementation
+
+ src/hb-ot-cff1-table.hh | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+commit e1e359b4daac86cea0a4f02f7f175e93ea9440d7
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 15:53:28 2022 -0600
+
+ [cff1] Tighten up range_list_t a bit
+
+ src/hb-subset-cff1.cc | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 3fbac0942da80457f8c226105f5a4a1bdfe502f5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 15:41:11 2022 -0600
+
+ [cff1] Lazy-load & sort glyph names
+
+ Improves subset benchmarks by up to 70% for small CFF1 subset of
+ non-CID fonts!
+
+ BM_subset/subset_glyphs/SourceSansPro-Regular.otf/10 -0.7067 -0.7071 1 0 1 0
+ BM_subset/subset_glyphs/SourceSansPro-Regular.otf/64 -0.4817 -0.4824 1 0 1 0
+ BM_subset/subset_glyphs/SourceSansPro-Regular.otf/512 -0.1948 -0.1956 2 2 2 2
+ BM_subset/subset_glyphs/SourceSansPro-Regular.otf/2000 -0.0767 -0.0761 6 6 6 6
+
+ src/hb-ot-cff1-table.hh | 74 +++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 53 insertions(+), 21 deletions(-)
+
+commit b58bfd9818243fc1178ecad0731fa24a5aa3f235
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 11:21:45 2022 -0600
+
+ [font] Minor move of code to silence gcc-12 warning
+
+ See mailing list discussion.
+
+ src/hb-font.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 602e0ca79d1a651fee0cd23d2fa3580621006c87
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 16 10:14:34 2022 -0600
+
+ [cff] Minor restructure of struct
+
+ Surprisingly this shows tiny benchmark improvement consistently.
+
+ src/hb-cff-interp-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit acdab17ed3507bc9524cb57bef703a983e1031cf
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 13 14:14:36 2022 -0600
+
+ [cff] Cosmetic in parsed_values_t
+
+ src/hb-cff-interp-common.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit b46c7faa9c77e288d16869b9ac609524e0f89468
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 13 14:02:54 2022 -0600
+
+ [cff] Check buf_len, not buf
+
+ Ouch!
+
+ src/hb-ot-cff1-table.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 19a8db85458f02f5be268747b85a2c4fab1319b9
+Author: Garret Rieger <grieger@google.com>
+Date: Fri May 13 18:05:05 2022 +0000
+
+ [subset] fix potential integer overflow in gname_t::cmp.
+
+ src/hb-ot-cff-common.hh | 3 ++-
+ src/hb-ot-cff1-table.hh | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 2d2f66e1a300e14aac16120f2dc193717502129e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 13 13:53:17 2022 -0600
+
+ [cff-common] In INDEX, return empty bytes if length is zero
+
+ Before it was possible to return non-null arrayZ.
+
+ src/hb-ot-cff-common.hh | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit a2f132f1fc5ed1c8426dea1b1e27aa1eaf8eeb04
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 13 13:49:17 2022 -0600
+
+ [cff] Check glyph-name's length, not arrayZ
+
+ As the latter can be non-null while still zero-length.
+
+ src/hb-ot-cff1-table.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit dc09053f1924a486058a8737fda22567e6d95213
+Author: jeremiazhao <jeremiazhao@tencent.com>
+Date: Fri May 13 17:54:11 2022 +0800
+
+ fix build requirements for fedora/centos in buiding document
+
+ BUILD.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c657c4e1f8e6f23828fefbc441b01f7bee685c79
+Author: Thomas Devoogdt <thomas.devoogdt@barco.com>
+Date: Tue May 10 10:00:06 2022 +0200
+
+ [meta] fix type traits on gcc 4.9 #3526
+
+ Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
+
+ src/hb-meta.hh | 11 +++++++++++
+ src/hb-open-type.hh | 11 ++++++-----
+ src/hb-vector.hh | 17 +++++++++--------
+ 3 files changed, 26 insertions(+), 13 deletions(-)
+
+commit e4e053c8b3a72295c7f414726085aaa01c137c6f
+Author: Garret Rieger <grieger@google.com>
+Date: Fri May 13 17:00:57 2022 +0000
+
+ [perf] fix typo in perf Makefile.
+
+ perf/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e61234c5f75e21901a81df08945daddca5cbfde3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 12 13:20:10 2022 -0600
+
+ [vector] Add tests for move constructor/assignment
+
+ src/test-vector.cc | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+commit 7fa580bc4f83f5440b23531f53b546d52af0f69b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 12 13:05:32 2022 -0600
+
+ [map] Fix map copy/move constructors to actually work
+
+ Ouch!
+
+ src/hb-map.hh | 5 +++--
+ src/hb-set.hh | 3 +--
+ src/test-map.cc | 22 ++++++++++++++++++----
+ src/test-set.cc | 4 +++-
+ 4 files changed, 25 insertions(+), 9 deletions(-)
+
+commit a09dd87ca373c1629c05803e3b8611274cb15a6c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 12 12:58:07 2022 -0600
+
+ [set] Fix set copy/move constructors to actually work
+
+ Ouch!
+
+ src/hb-set.hh | 16 ++++++++++------
+ src/test-set.cc | 19 ++++++++++++++-----
+ 2 files changed, 24 insertions(+), 11 deletions(-)
+
+commit 76fc27713f52cc338f0325650c2c7798f5cfa2ce
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 12 12:14:07 2022 -0600
+
+ [vector] Remove explicit std::move
+
+ Was confusing compilers. Let them figure it out themselves.
+
+ Makes NotoNastaliqu subsetting/1000 benchmark more than twice faster:
+
+ Benchmark Time CPU Time Old Time New CPU Old CPU New
+ ------------------------------------------------------------------------------------------------------------------------------------------------------------
+ BM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/1000 -0.5064 -0.5065 111 55 110 55
+ BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/1000 -0.5494 -0.5493 132 59 131 59
+
+ src/hb-vector.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c81198b5bc7d5d0990752b36ad2b1fcdec963abf
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 12 11:58:37 2022 -0600
+
+ [set] Tweak move operators a bit
+
+ Should be equivalent.
+
+ src/hb-bit-set-invertible.hh | 6 +++---
+ src/hb-set.hh | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 8dc072d20d87d2986cd58797bc1993c372e5d4d6
+Merge: bff78e651 175319cd8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 11 16:45:40 2022 -0600
+
+ Merge pull request #3579 from harfbuzz/subset-retain-buffer
+
+ Subset retain buffer
+
+commit 175319cd89fbab431616eb83d4d7c569fe4e8800
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 11 13:47:17 2022 -0600
+
+ [gsubgpos] Clean up OT::ClassDefFormat2::intersected_class_glyphs 0 case
+
+ src/hb-ot-layout-common.hh | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+commit 137af3612bcf038103bfc315f445d6574cba8d2c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 11 13:39:30 2022 -0600
+
+ [gsubgpos] Simplify OT::ClassDefFormat2::intersected_class_glyphs()
+
+ src/hb-ot-layout-common.hh | 39 +++++++++++++++++++--------------------
+ 1 file changed, 19 insertions(+), 20 deletions(-)
+
+commit 3261e05bdbb067cb9411a38a585bb04be1fb2542
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 11 13:16:31 2022 -0600
+
+ [subset] Optimize ClassDef1::intersected_class_glyphs() for class0
+
+ src/hb-ot-layout-common.hh | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+commit c78d8ba60b49013e3ca98a2d7b030dc5d8c569d8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 11 13:05:41 2022 -0600
+
+ [subset] Allocate same size as source table for GSUB/GPOS/name
+
+ src/hb-subset.cc | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+commit 2e7f1ae48feaa2db8248b7ae01e46ef70e461a31
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 11 12:49:16 2022 -0600
+
+ [subset] Use vector.allocated size instead of tracking buf_size
+
+ src/hb-subset.cc | 10 +++++-----
+ src/hb-vector.hh | 3 +--
+ 2 files changed, 6 insertions(+), 7 deletions(-)
+
+commit f08537963b5157cd9e7a02f6e1695ff6bd27cc1b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 11 12:10:03 2022 -0600
+
+ [cff-subset] Pre-alloc vector for operator decoding
+
+ src/hb-cff-interp-common.hh | 5 +++++
+ src/hb-subset-cff-common.hh | 1 +
+ 2 files changed, 6 insertions(+)
+
+commit 7edd54f3ddadc10307577575f47e943b86198e9d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 18:44:14 2022 -0600
+
+ [perf/benchmark-subset] Minor cleanup
+
+ perf/benchmark-subset.cc | 32 +++++++++++++++++++-------------
+ 1 file changed, 19 insertions(+), 13 deletions(-)
+
+commit aeb50b8942b92cda2b1d5bb03d685f97f79faf5d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 18:06:53 2022 -0600
+
+ [subset] Retain buffer across table subset operations
+
+ src/hb-subset.cc | 61 +++++++++++++++++++++++++++++---------------------------
+ 1 file changed, 32 insertions(+), 29 deletions(-)
+
+commit bff78e651555e6376d2a4b49c323cf5e9fe3a25c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 16:33:37 2022 -0600
+
+ [cff] Convert interpretation environment to use constructor
+
+ src/hb-cff-interp-common.hh | 29 ++++++++---------------------
+ src/hb-cff-interp-cs-common.hh | 13 +++++--------
+ src/hb-cff-interp-dict-common.hh | 2 ++
+ src/hb-cff1-interp-cs.hh | 8 +++-----
+ src/hb-cff2-interp-cs.hh | 9 ++++-----
+ src/hb-ot-cff1-table.cc | 16 ++++++++--------
+ src/hb-ot-cff1-table.hh | 19 ++++++++++---------
+ src/hb-ot-cff2-table.cc | 8 ++++----
+ src/hb-ot-cff2-table.hh | 24 ++++++++++--------------
+ src/hb-subset-cff-common.hh | 8 ++++----
+ 10 files changed, 58 insertions(+), 78 deletions(-)
+
+commit de053e2efbcf0166590868c993bfbe7cc3453a06
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 15:38:37 2022 -0600
+
+ [cff] Convert subr_subset_param_t to use constructor
+
+ src/hb-subset-cff-common.hh | 59 ++++++++++++++++++++++++---------------------
+ 1 file changed, 31 insertions(+), 28 deletions(-)
+
+commit 96140db485b61995b0fe9528b6323a5ea928e5a8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 15:34:33 2022 -0600
+
+ [cff] Convert cff2_extents_param_t to use constructor
+
+ src/hb-ot-cff2-table.cc | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 54544f2a57373b2d74bda55d4a48f58a0121c22c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 15:31:49 2022 -0600
+
+ [cff] Convert cff1_extents_param_t to use constructor
+
+ src/hb-ot-cff1-table.cc | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+commit 377befd0c72071190029112ee04ab0a06fea60b6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 15:29:12 2022 -0600
+
+ [cff] Convert get_seac_param_t to use constructor
+
+ src/hb-ot-cff1-table.cc | 14 ++++----------
+ 1 file changed, 4 insertions(+), 10 deletions(-)
+
+commit 8fd70362fa4c0f411fc67b15b67b69a7c43431e3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 15:15:49 2022 -0600
+
+ [cff] Use hb_ubytes_t() instead of Null(hb_ubytes_t)
+
+ src/hb-cff-interp-cs-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9033c7f99d5ffe80c349a2ed5e4ef68ca4bed434
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 14:58:53 2022 -0600
+
+ [cff-common] Optimize INDEX::operator[]
+
+ Previous try showed slowdown in benchmarks, suprisingly.
+
+ Rewrite it keeping the function, hopefully allowing better optimization.
+
+ src/hb-ot-cff-common.hh | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 3aace2431b9bd503cb706760d831ae313d059107
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 14:54:04 2022 -0600
+
+ Revert "[cff-common] Optimize INDEX::operator[]"
+
+ This reverts commit 9edb03ac7ac4b4d0814f3fd1f20cc8d2be99e971.
+
+ src/hb-ot-cff-common.hh | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+commit b31ef081db0d91fd6d3e72a59fc97248ab28a904
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 14:52:40 2022 -0600
+
+ Revert "[cff] Add an unlikely()"
+
+ This reverts commit 9ba9adb7ed6d48504e97a2af117b7da1fdb28450.
+
+ This shows slowdown in benchmarks.
+
+ src/hb-cff-interp-cs-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9ba9adb7ed6d48504e97a2af117b7da1fdb28450
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 14:42:50 2022 -0600
+
+ [cff] Add an unlikely()
+
+ src/hb-cff-interp-cs-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9edb03ac7ac4b4d0814f3fd1f20cc8d2be99e971
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 14:25:08 2022 -0600
+
+ [cff-common] Optimize INDEX::operator[]
+
+ src/hb-ot-cff-common.hh | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+commit 52d59bf150b2a6312fe4c3b6f2ec882febe814d9
+Author: Garret Rieger <grieger@google.com>
+Date: Tue May 10 19:40:37 2022 +0000
+
+ [perf] Make subset benchmark data driven.
+
+ perf/benchmark-subset.cc | 153 +++++++--------------
+ .../data}/fonts/NotoSansDevanagari-Regular.ttf | Bin
+ 2 files changed, 52 insertions(+), 101 deletions(-)
+
+commit 0a42410dc8a8457f49b94a0b533f0b83191ce8d5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue May 10 12:05:19 2022 -0600
+
+ [cff2] Change extents/shape stack to be just a number
+
+ Do the blending immediately.
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/3559
+
+ Benchmark on AdobeVFPrototype shows 35% speedup. Now we're faster
+ than FreeType:
+
+ Benchmark Time CPU Time Old Time New CPU Old CPU New
+ ------------------------------------------------------------------------------------------------------------------------------------------------
+ BM_Font/glyph_extents/AdobeVFPrototype.otf/hb -0.3792 -0.3792 1584 983 1581 982
+ BM_Font/glyph_extents/AdobeVFPrototype.otf/ft +0.0228 +0.0224 1220 1248 1218 1245
+ BM_Font/glyph_extents/AdobeVFPrototype.otf/var/hb -0.3513 -0.3518 1616 1048 1613 1046
+ BM_Font/glyph_extents/AdobeVFPrototype.otf/var/ft +0.0172 +0.0169 1232 1254 1230 1251
+
+ src/hb-cff-interp-common.hh | 4 +--
+ src/hb-cff2-interp-cs.hh | 82 +++++++++++++++++++++++++++------------------
+ src/hb-ot-cff2-table.cc | 24 ++++++-------
+ src/hb-subset-cff2.cc | 28 ++++++++--------
+ 4 files changed, 77 insertions(+), 61 deletions(-)
+
+commit 5277a5772b0b9ebbbcdec0eae7f1b13d41a8d170
+Author: Garret Rieger <grieger@google.com>
+Date: Tue May 10 18:14:25 2022 +0000
+
+ [perf] Add benchmarks for CFF subsetting.
+
+ perf/benchmark-subset.cc | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+commit 8f9f0c494b9ea516903e8142e8aba391ddcb581c
+Author: Garret Rieger <grieger@google.com>
+Date: Tue May 10 17:47:08 2022 +0000
+
+ [subset] Enforce cmap12 group ordering constraints in collect_mapping.
+
+ Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6365271012540416
+
+ src/hb-ot-cmap-table.hh | 8 ++++++++
+ ...estcase-minimized-hb-subset-fuzzer-6365271012540416 | Bin 0 -> 161424 bytes
+ 2 files changed, 8 insertions(+)
+
+commit c99ad0f015d1328cbb9803777f66ca491b2cb115
+Merge: c941ece60 1b14d2ff1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 18:52:19 2022 -0600
+
+ Merge pull request #3572 from harfbuzz/cff-stack
+
+ Cff stack
+
+commit 1b14d2ff136a9f7522995393fda6f6644377657f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 18:15:31 2022 -0600
+
+ [cff] Fix arg-stack peek() impl
+
+ src/hb-cff-interp-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6106ef8c0f61453c38c58f71a045481bf5546f2d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 18:12:09 2022 -0600
+
+ [cff] Tighten up arg-stack access
+
+ src/hb-cff-interp-common.hh | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+commit 8c616a6efe7370e110d6a2f822bb1a38bf768ea6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 17:49:54 2022 -0600
+
+ [cff] Allocate stack inline instead of using hb_vector_t
+
+ Speeds up glyph_extents and glyph_shape benchmarks for CFF by 10
+ to 16 percent!
+
+ src/hb-cff-interp-common.hh | 18 +++++++-----------
+ 1 file changed, 7 insertions(+), 11 deletions(-)
+
+commit c941ece60fe791b58697a0ac9d92cd27682f0698
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 16:20:22 2022 -0600
+
+ [cff] Use using instead of typedef
+
+ src/hb-cff-interp-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 64d63cebe2968bc8d9882991b5402c7d626ecf90
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 16:16:07 2022 -0600
+
+ [cff-common] Use existing types for str_buff_vec_t
+
+ src/hb-ot-cff-common.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit e1838ec1f863758bdd3fa33dce8bf8bfb7fa1518
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 16:14:13 2022 -0600
+
+ [cff-common] Remove unused method
+
+ src/hb-ot-cff-common.hh | 11 +----------
+ 1 file changed, 1 insertion(+), 10 deletions(-)
+
+commit 8aa54aaca250e2934bd2c97047db8b40bf027908
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 16:09:56 2022 -0600
+
+ [cff] Replace byte_str_t with hb_bytes_t use
+
+ src/hb-cff-interp-common.hh | 25 ++++++++++---------------
+ src/hb-cff-interp-cs-common.hh | 6 +++---
+ src/hb-cff1-interp-cs.hh | 2 +-
+ src/hb-cff2-interp-cs.hh | 2 +-
+ src/hb-ot-cff-common.hh | 14 +++++++-------
+ src/hb-ot-cff1-table.cc | 6 +++---
+ src/hb-ot-cff1-table.hh | 12 ++++++------
+ src/hb-ot-cff2-table.cc | 4 ++--
+ src/hb-ot-cff2-table.hh | 8 ++++----
+ src/hb-subset-cff-common.hh | 6 +++---
+ src/hb-subset-cff1.cc | 2 +-
+ 11 files changed, 41 insertions(+), 46 deletions(-)
+
+commit fe1d85a55a53797f0808d1f473475b7ce15eeb92
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 16:04:52 2022 -0600
+
+ [cff] Remove custom byte_str_t impl
+
+ src/hb-cff-interp-common.hh | 35 ++++++++++-------------------------
+ src/hb-ot-cff1-table.hh | 4 ++--
+ src/hb-ot-cff2-table.hh | 4 ++--
+ 3 files changed, 14 insertions(+), 29 deletions(-)
+
+commit c8a5f1e3c0cb8b2c0c546e89134cb66b9af2b53a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:49:47 2022 -0600
+
+ [cff-common] Indent
+
+ src/hb-ot-cff-common.hh | 49 +++++++++++++++++++++++++------------------------
+ 1 file changed, 25 insertions(+), 24 deletions(-)
+
+commit be7b2905cb118a5d4d08f42e870fe5f5f5ee9b0e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:48:18 2022 -0600
+
+ [cff-common] Remove unused INDEX::serialize() method
+
+ src/hb-ot-cff-common.hh | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+commit 60390169b65632406391f3492efdbd66c688555f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:44:09 2022 -0600
+
+ [cff-common] Write str_buf_t::total_size() as dagger
+
+ src/hb-ot-cff-common.hh | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+commit 258afb45b7fefa42e36f74731d56862b9367f91e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:40:55 2022 -0600
+
+ [cff-common] Use range-based loop in str_buff_vec_t
+
+ src/hb-ot-cff-common.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 8bb1a3ce9ae8a24c168a51c6faf16779561138ae
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:38:40 2022 -0600
+
+ [cff-common] Write INDEX offset-size calc using hb_bit_storage()
+
+ src/hb-ot-cff-common.hh | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+commit 2ccfe84eff7f72159c87012d7e10e9c8ecdbc956
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:35:04 2022 -0600
+
+ [cff-common] Add assert to INDEX::set_offset_at()
+
+ src/hb-ot-cff-common.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 4bcab9e99a7fb7456f5788e2da6fae8fc5b14584
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:30:42 2022 -0600
+
+ [cff-common] Use byte_str_t() instead of Null(byte_str_t)
+
+ src/hb-ot-cff-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 94f7a263228a120754ca31600cabb15de0652501
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:29:14 2022 -0600
+
+ [cff-common] Fix get_size() for Null object
+
+ The special-casing didn't make sense.
+
+ src/hb-ot-cff-common.hh | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit c9cc7d5d21dc2550e820de841f5d24f5c94dcc7e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:27:27 2022 -0600
+
+ [cff-common] Inline once-used method in INDEX
+
+ src/hb-ot-cff-common.hh | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+commit 11482a3a3927eff8e408f825082f61a202c9be9b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:25:21 2022 -0600
+
+ [cff-common] Remove unused method from INDEX
+
+ src/hb-ot-cff-common.hh | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit d1bb3b08f65965bfc07b11becc3e344554c398cc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:23:59 2022 -0600
+
+ [cff-common] Hide more INDEX internals
+
+ src/hb-ot-cff-common.hh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit d3b21387fde2923a624903915a58c9745d2602af
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:22:55 2022 -0600
+
+ [cff-common] Remove redundant operator implementation
+
+ src/hb-ot-cff-common.hh | 7 -------
+ 1 file changed, 7 deletions(-)
+
+commit a96b408d805c53c051764b66a7e19aa902c82546
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 9 15:20:16 2022 -0600
+
+ [cff-common] Hide INDEX internals
+
+ src/hb-ot-cff-common.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 335b1d83cf61d1d712e9343a2217594f37018880
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 13:37:11 2022 -0600
+
+ [cff-common] No need to check max-offset in INDEX
+
+ The length_at() function makes sure out-of-range offsets
+ are discarded. We just need to check the last offset.
+
+ src/hb-ot-cff-common.hh | 19 ++++---------------
+ 1 file changed, 4 insertions(+), 15 deletions(-)
+
+commit b051f3fa8388d25c7023a7f48dfea415bde1c94c
+Author: Garret Rieger <grieger@google.com>
+Date: Thu May 5 23:27:34 2022 +0000
+
+ [subset] Fix cpal subsetting when there are partial palette overlaps.
+
+ The existing code doesn't correctly handle the case where palettes partially overlap in the color record array. This changes the subsetting to only share entries in the color record array when palettes have the same first color index. Partially overlapping palettes will be converted to disjoint segments in the color record array.
+
+ Updates one of the color tests to use multiple palettes.
+
+ Also fixes fuzzer: https://oss-fuzz.com/testcase-detail/5568200165687296.
+
+ src/hb-ot-color-cpal-table.hh | 60 +++++++++++++--------
+ ...ase-minimized-hb-subset-fuzzer-5568200165687296 | Bin 0 -> 220551 bytes
+ .../colr_with_components/colr-table.default.6B.ttf | Bin 4260 -> 4320 bytes
+ .../colr-table.drop-hints-retain-gids.6B.ttf | Bin 4984 -> 5044 bytes
+ .../colr-table.drop-hints.6B.ttf | Bin 4260 -> 4320 bytes
+ .../colr-table.retain-gids.6B.ttf | Bin 4984 -> 5044 bytes
+ test/subset/data/fonts/colr-table.ttf | Bin 26952 -> 27328 bytes
+ 7 files changed, 37 insertions(+), 23 deletions(-)
+
+commit 2884eb97bf448448c8c06f51e1a60acbff33bcbf
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 12:54:02 2022 -0600
+
+ [cff-common] Remove special-casing of count=0 in INDEX serialize
+
+ The generic code-path now can handle count=0.
+
+ src/hb-ot-cff-common.hh | 15 +++------------
+ 1 file changed, 3 insertions(+), 12 deletions(-)
+
+commit fc7f51aecea6b7a66772d4f759f52447f34197f1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 12:53:19 2022 -0600
+
+ [cff-common] Reduce iterator calls
+
+ src/hb-ot-cff-common.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit c857b8e3c642476aedea634c294ee101d6ce39f3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 12:50:37 2022 -0600
+
+ [cff-common] Set INDEX min_size to 2
+
+ That is what it is, for an empty INDEX.
+
+ src/hb-ot-cff-common.hh | 21 ++++++++++++---------
+ 1 file changed, 12 insertions(+), 9 deletions(-)
+
+commit dd71d2c1c30ca85ddd7b1d7e3a9e2bbdacd6ae7a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 13:02:26 2022 -0600
+
+ [gvar] Protect against offset underflow
+
+ src/hb-ot-var-gvar-table.hh | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 9a6dabd61a1af848abbab21b0152e58875604a37
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 12:01:37 2022 -0600
+
+ [gvar] Remove sanitize check for data array
+
+ We are not checking in sanitize that offset array is ascending,
+ so this check was bogus.
+
+ src/hb-ot-var-gvar-table.hh | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit 38478d1061d4971c6f10910db1b8988aab900bcf
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 12:00:01 2022 -0600
+
+ [gvar] DEFINE_SIZE_ARRAY instead of DEFINE_SIZE_MIN
+
+ src/hb-ot-var-gvar-table.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 90d278c92e2ef076d2b239fed56a9dc11f4b6c12
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 11:58:53 2022 -0600
+
+ [gvar] Remove requirement that num_glyphs matches the font's
+
+ src/hb-ot-var-gvar-table.hh | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit ca8a0f3ea32af8fdaf2f99ad87a43e82be854f62
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri May 6 11:54:38 2022 -0600
+
+ [gvar] Protect against out-of-range access
+
+ Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47281
+ Fixes https://oss-fuzz.com/testcase-detail/5508865908670464
+
+ src/hb-ot-var-gvar-table.hh | 5 ++++-
+ ...usterfuzz-testcase-hb-subset-fuzzer-5508865908670464 | Bin 0 -> 17004 bytes
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+commit f10ddb8dd870fd691c8876c1c7151e607aab0625
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 5 11:21:24 2022 -0600
+
+ [cmap] Use -1 as Unicode sentinel, not U+FFFF in Format12 serialize
+
+ src/hb-ot-cmap-table.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 8a19968c8b8f8118e6247489a65edfb707bc838e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 5 11:17:23 2022 -0600
+
+ [cmap] Use iterator bool operator
+
+ src/hb-ot-cmap-table.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 8bfeea482838a0c4f678c7f666f4520f4f2e8dd9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 5 10:48:24 2022 -0600
+
+ [subset] Compute set max using previous()
+
+ src/hb-subset-plan.cc | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+commit 00cb8c629d8f5615d316ac6541d6652dfa2d3145
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 5 10:33:50 2022 -0600
+
+ [subset] Don't go into glyf table if it's empty
+
+ src/hb-ot-glyf-table.hh | 2 ++
+ src/hb-subset-plan.cc | 17 ++++++++++-------
+ 2 files changed, 12 insertions(+), 7 deletions(-)
+
+commit 4fe69bc41327596af540a2f683062b41a4f37f45
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu May 5 10:19:16 2022 -0600
+
+ [subset] Use del_range in _remove_invalid_gids
+
+ src/hb-subset-plan.cc | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+commit 2a42edccbe55ede9ed7bbf643b7bec41698078ed
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 4 17:06:18 2022 -0600
+
+ [subset] Cosmetic; use set bulk array population instead of for loop
+
+ src/hb-subset-plan.cc | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+commit bc5129d7fa6fae7ce4c653b699944dd9416eca68
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 4 22:16:03 2022 +0000
+
+ [perf] use option_t in subset benchmark to select between glyphs and codepoint subset.
+
+ perf/benchmark-subset.cc | 134 ++++++++++++++++++++++-------------------------
+ 1 file changed, 62 insertions(+), 72 deletions(-)
+
+commit 43938ecdc2b5cda45f9499f8c3360a0a3ac0842b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 4 16:59:28 2022 -0600
+
+ [subset] Remove outdated comment
+
+ I tried something like that. It was slower because of the allocations.
+
+ src/hb-subset-plan.cc | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 6212856ce80d1cbdb5ebbd6d8f899e2b1e45d611
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 4 22:16:03 2022 +0000
+
+ [perf] benchmark subsetting via glyphs.
+
+ perf/benchmark-subset.cc | 78 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 78 insertions(+)
+
+commit 6829dd30ad9058170674760f3795fcafe3ed6f27
+Merge: 052812b6b 50db78ba8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 4 16:49:45 2022 -0600
+
+ Merge pull request #3562 from harfbuzz/subset-cmap-no-qsort
+
+ [subset] In cmap planning, remove a qsort()
+
+commit 50db78ba834b35b96a808c07e550a50b3e1fa5ec
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 4 15:48:18 2022 -0600
+
+ [subset] In cmap planning, remove a qsort()
+
+ src/hb-subset-plan.cc | 30 ++++++++++--------------------
+ 1 file changed, 10 insertions(+), 20 deletions(-)
+
+commit 052812b6ba424b4be677d60a722375f69decb89f
+Merge: f67e6bf79 7cb36e422
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed May 4 15:38:30 2022 -0600
+
+ Merge pull request #3561 from googlefonts/cmap_opt
+
+ [subset] Further cmap subsetting speed optimizations
+
+commit 7cb36e422218305329102849c156ab94db91cbef
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 4 21:22:26 2022 +0000
+
+ [subset] Re-introduce size threshold in choosing unicode collection method.
+
+ Threshold is needed since the unicodes set might be an inverted set.
+
+ src/hb-subset-plan.cc | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+commit 42c54eba839f510c885fe1a63732b0f706af1bff
+Author: Garret Rieger <grieger@google.com>
+Date: Wed May 4 20:21:43 2022 +0000
+
+ [subset] Presize unicode to gid list to unicodes + glyphs size.
+
+ src/hb-subset-plan.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 7c7c01d28cee221f1c64684539c8e6160f144f61
+Author: Garret Rieger <grieger@google.com>
+Date: Tue May 3 22:40:56 2022 +0000
+
+ [subset] Remove switch to alternate unicode collection at large subset sizes.
+
+ Benchmarks show that the first path is always faster even at large subset sizes:
+
+ BM_subset_codepoints/subset_roboto/10_median +0.0324 +0.0325 0 0 0 0
+ BM_subset_codepoints/subset_roboto/64_median +0.0253 +0.0255 0 1 0 1
+ BM_subset_codepoints/subset_roboto/512_median +0.0126 +0.0128 1 1 1 1
+ BM_subset_codepoints/subset_roboto/4000_median +0.0500 +0.0491 6 7 6 7
+ BM_subset_codepoints/subset_amiri/10_median +0.0338 +0.0332 1 1 1 1
+ BM_subset_codepoints/subset_amiri/64_median +0.0238 +0.0234 1 1 1 1
+ BM_subset_codepoints/subset_amiri/512_median +0.0066 +0.0063 8 8 8 8
+ BM_subset_codepoints/subset_amiri/4000_median -0.0011 -0.0012 13 13 13 13
+ BM_subset_codepoints/subset_noto_nastaliq_urdu/10_median +0.0226 +0.0226 0 0 0 0
+ BM_subset_codepoints/subset_noto_nastaliq_urdu/64_median +0.0047 +0.0044 20 20 20 20
+ BM_subset_codepoints/subset_noto_nastaliq_urdu/512_median +0.0022 +0.0021 165 166 165 166
+ BM_subset_codepoints/subset_noto_nastaliq_urdu/1000_median -0.0021 -0.0023 166 166 166 165
+ BM_subset_codepoints/subset_noto_devangari/10_median +0.0054 +0.0054 0 0 0 0
+ BM_subset_codepoints/subset_noto_devangari/64_median +0.0024 +0.0019 0 0 0 0
+ BM_subset_codepoints/subset_noto_devangari/512_median +0.0089 +0.0090 5 5 5 5
+ BM_subset_codepoints/subset_noto_devangari/1000_median -0.0028 -0.0019 5 5 5 5
+ BM_subset_codepoints/subset_mplus1p/10_median +0.0001 +0.0002 0 0 0 0
+ BM_subset_codepoints/subset_mplus1p/64_median +0.0073 +0.0075 1 1 1 1
+ BM_subset_codepoints/subset_mplus1p/512_median +0.0034 +0.0034 1 1 1 1
+ BM_subset_codepoints/subset_mplus1p/4096_median -0.1248 -0.1248 7 6 7 6
+ BM_subset_codepoints/subset_mplus1p/10000_median -0.0885 -0.0885 13 12 13 12
+ BM_subset_codepoints/subset_notocjk/10_median +0.0031 +0.0032 2 2 2 2
+ BM_subset_codepoints/subset_notocjk/64_median -0.0010 -0.0010 2 2 2 2
+ BM_subset_codepoints/subset_notocjk/512_median -0.0023 -0.0023 9 9 9 9
+ BM_subset_codepoints/subset_notocjk/4096_median -0.1725 -0.1726 28 23 28 23
+ BM_subset_codepoints/subset_notocjk/32768_median -0.0277 -0.0287 140 137 140 136
+ BM_subset_codepoints/subset_notocjk/100000_median -0.0929 -0.0926 162 147 162 147
+
+ src/hb-subset-plan.cc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit f0c04114bc229b3b519ed2242689959ccec64098
+Author: Garret Rieger <grieger@google.com>
+Date: Tue May 3 22:02:59 2022 +0000
+
+ [subset] Embed unicode to gid list vector in subset plan.
+
+ src/hb-ot-cmap-table.hh | 2 +-
+ src/hb-subset-plan.cc | 35 ++++++++++++++++-------------------
+ src/hb-subset-plan.hh | 2 +-
+ 3 files changed, 18 insertions(+), 21 deletions(-)
+
+commit f67e6bf79cd1ac3892a2d6dfe6e479483290bd41
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:59:48 2022 -0600
+
+ [perf/benchmark-font] Add benchmark for glyph_h_advance
+
+ perf/benchmark-font.cc | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+commit 1c0a3d4d16b3ff6864c701fc94aa6878ea82a5c4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:50:54 2022 -0600
+
+ [perf/benchmark-font] Add a couple Noto fonts
+
+ perf/benchmark-font.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 15fa8afb217582bce4d360c43ad7674861dc1278
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:46:41 2022 -0600
+
+ Add fast-path for big-endian 32-bit byteswap
+
+ Speeds up cmap format-12 decoding by some 40% as measured by
+ the newly added test in perf/benchmark-font!
+
+ src/hb-algs.hh | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+commit 3fff2e9182fc6c3cd8ade0336fa67e71967e82c5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:31:59 2022 -0600
+
+ [perf/benchmark-font] Cosmetic
+
+ perf/benchmark-font.cc | 2 +-
+ src/hb-ot-cmap-table.hh | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 307d2d8bb6e74ad974207d3b9f706568a6a87e75
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:30:22 2022 -0600
+
+ [cmap] Sprinkle some 'unlikely's
+
+ src/hb-ot-cmap-table.hh | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 85ec5cbcefeb2361536031f2e05518c2d817d98a
+Author: Garret Rieger <grieger@google.com>
+Date: Mon May 2 22:29:43 2022 +0000
+
+ [subset] In _populate_unicodes_to_retain populate unicodes in order.
+
+ Allows the set insert to take advantage of page lookup cache.
+
+ src/hb-subset-plan.cc | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 0d1f8dcaf3a45dc8ed61dde370df0874af008870
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:18:53 2022 -0600
+
+ [perf/benchmark-font] Actually make nominal_glyph bench work
+
+ perf/benchmark-font.cc | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+commit 6cf69d10e710cfa7282509c2a43e12618d4673bc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:07:32 2022 -0600
+
+ [perf/benchmark-font] Add back testing of is_variable
+
+ perf/benchmark-font.cc | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+commit 3aa2ff7988583a7c078032e762cd2bde006fc896
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 16:01:22 2022 -0600
+
+ [perf/benchmark-font] Fix build without freetype
+
+ perf/benchmark-font.cc | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit 58a0988b576f915a21f4171f71d6d2603d6f3414
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 15:57:19 2022 -0600
+
+ [perf/benchmark-font] Benchmark get_nominal_glyph
+
+ perf/benchmark-font.cc | 37 ++++++++++++++++++++++++++++++-------
+ 1 file changed, 30 insertions(+), 7 deletions(-)
+
+commit 03f16fab585e57f184642398172bb2e17aa57635
+Merge: a4522df37 6d29903e8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 15:44:41 2022 -0600
+
+ Merge pull request #3560 from harfbuzz/perf-cleanup
+
+ Perf cleanup
+
+commit 088133d939d8bc4ce3d97eed7d835c1831e68766
+Author: Garret Rieger <grieger@google.com>
+Date: Mon May 2 21:29:16 2022 +0000
+
+ [subset] cache cp to new gid list in subset plan.
+
+ This avoids having to recompute the ordered list multiple times during cmap generation.
+
+ src/hb-ot-cmap-table.hh | 9 +--------
+ src/hb-subset-plan.cc | 30 ++++++++++++++++++++++++++++++
+ src/hb-subset-plan.hh | 1 +
+ 3 files changed, 32 insertions(+), 8 deletions(-)
+
+commit 6d29903e86d1f6b0fe7ca884a071d047f0ee130b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 14:03:15 2022 -0600
+
+ [perf/benchmark-font] Parametrize test
+
+ perf/benchmark-font.cc | 115 +++++++++++++++++++++++++-----------------------
+ perf/benchmark-shape.cc | 2 +
+ 2 files changed, 63 insertions(+), 54 deletions(-)
+
+commit 636c90e81c2eb9a907a1c14d0f3450902d95f65a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 13:41:49 2022 -0600
+
+ [perf/perf] Rename to benchmark-font
+
+ perf/Makefile.am | 3 +-
+ perf/{perf-draw.hh => benchmark-font.cc} | 0
+ perf/meson.build | 7 ++--
+ perf/perf-extents.hh | 65 --------------------------------
+ perf/perf.cc | 3 --
+ 5 files changed, 4 insertions(+), 74 deletions(-)
+
+commit 036d03d2e91fc20133150696c405d3281326a552
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 13:39:54 2022 -0600
+
+ [perf/perf] Move all logic to perf-draw, for now
+
+ To be renamed.
+
+ perf/Makefile.am | 1 -
+ perf/perf-draw.hh | 124 +++++++++++++++++++++++++++++++++++++++++-------------
+ perf/perf.cc | 10 -----
+ 3 files changed, 94 insertions(+), 41 deletions(-)
+
+commit 746c3c03c5017b4e1404c65a04a5a6122a6cd831
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 13:26:41 2022 -0600
+
+ [perf/perf] Remove ttf-parser backend
+
+ perf/meson.build | 11 +------
+ perf/perf-draw.hh | 91 +++++++++++-----------------------------------------
+ perf/perf-extents.hh | 50 ++++-------------------------
+ perf/perf.cc | 2 +-
+ 4 files changed, 28 insertions(+), 126 deletions(-)
+
+commit 4aaa0af7d99f7a44a02542ab8a8d467e3f6a3f64
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon May 2 13:06:27 2022 -0600
+
+ [perf/perf] Rely on hb-draw to measure ft performance
+
+ perf/perf-draw.hh | 50 +++++++-------------------------------------------
+ 1 file changed, 7 insertions(+), 43 deletions(-)
+
+commit a4522df378259653f6cdda535980c4acee4d3021
+Merge: 4de5352a3 6922a2561
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 18:34:00 2022 -0600
+
+ Merge pull request #3558 from harfbuzz/set-optimize
+
+ [perf] hb_set_t optimizations and perf suite improvements
+
+commit 6922a2561f75468c328fa158fef289a0b4156d87
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Apr 29 23:30:32 2022 +0000
+
+ [subset] Change serialize_rangeoffset_glyid back to using iterator.
+
+ src/hb-ot-cmap-table.hh | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+commit c66fd50c269a7ab8ab22c404354c783ab5419bcc
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Apr 29 23:18:53 2022 +0000
+
+ [subset] in cmap4 serialization save cp to gid iter to memory.
+
+ Iterator accesses are slow and it's iterated multiple times.
+
+ src/hb-ot-cmap-table.hh | 21 +++++++++++++--------
+ 1 file changed, 13 insertions(+), 8 deletions(-)
+
+commit 17b98563dc426674d633b79194ce591c8dd38e01
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Apr 29 22:49:02 2022 +0000
+
+ [subset] In cmap4 serialization reduce unnessecary calls into the iterator.
+
+ Gives ~20% speedup for large subsets.
+
+ src/hb-ot-cmap-table.hh | 30 +++++++++++++++++-------------
+ 1 file changed, 17 insertions(+), 13 deletions(-)
+
+commit 5e241094bfa72840a4142c33264d128b60f12330
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Apr 29 22:44:43 2022 +0000
+
+ [subset] In unicodes cache cleanup if set insert fails.
+
+ src/hb-ot-cmap-table.hh | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 217d38dfc7b7b1152b74ceb46472bf6a05d35f1a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 16:18:17 2022 -0600
+
+ Try to fix distcheck
+
+ Makefile.am | 15 +--------------
+ configure.ac | 1 +
+ perf/Makefile.am | 24 ++++++++++++++++++++++++
+ 3 files changed, 26 insertions(+), 14 deletions(-)
+
+commit a424a92ce5e47b35d3128be1a612d3130c4c85b0
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Apr 29 22:14:03 2022 +0000
+
+ [subset] s/void */intptr_t.
+
+ src/hb-ot-cmap-table.hh | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit aad67f5629b1407df1b3152dfce0aefafbfb4132
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Apr 29 22:01:06 2022 +0000
+
+ [subset] cache results of collect_unicodes.
+
+ src/hb-ot-cmap-table.hh | 45 +++++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 37 insertions(+), 8 deletions(-)
+
+commit 35681b3edb79b1286f1aa0ece2f6ae99e0363190
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 16:02:55 2022 -0600
+
+ [benchmark-shape] Break lines and shape separately
+
+ perf/benchmark-shape.cc | 23 +++++++++++++++++------
+ 1 file changed, 17 insertions(+), 6 deletions(-)
+
+commit be1ac9c57232317647e59983e72b6a86f93151a2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 15:55:19 2022 -0600
+
+ [benchmark-shape] Data-driven test sets
+
+ perf/benchmark-shape.cc | 78 ++++++++++++++++++++++++++++---------------------
+ 1 file changed, 44 insertions(+), 34 deletions(-)
+
+commit ae3efc64248f46478fe9ad3863a5dfb0a362fe5f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 15:37:11 2022 -0600
+
+ [perf] Spawn off benchmark-shape from perf runner
+
+ perf/{perf-shaping.hh => benchmark-shape.cc} | 2 ++
+ perf/meson.build | 10 ++++++++++
+ perf/perf.cc | 1 -
+ 3 files changed, 12 insertions(+), 1 deletion(-)
+
+commit 5f43ce825afbedb1edbbc6610d1c017aa0f5fe27
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 13:37:46 2022 -0600
+
+ [benchmark-set] Split SetLookup into an ordered and random version
+
+ perf/benchmark-set.cc | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit ae9c7b861b257897a7ff0044d38e70f95df3eec7
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 13:39:04 2022 -0600
+
+ [benchmark-set] At least increase needle by one in lookup benchmark
+
+ perf/benchmark-set.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 68a9b83d157c2c2ece2c49732f5bf68d843a77a8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 13:27:42 2022 -0600
+
+ [benchmark-set] At least increase needle by one in lookup benchmark
+
+ perf/benchmark-set.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b4236b7de6bb2823a4561357342309b0f6d7d264
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Apr 29 19:21:13 2022 +0000
+
+ [subset] Optimize Cmap4 collect_unicodes.
+
+ Use set add_range() instead of individual add() calls.
+
+ src/hb-ot-cmap-table.hh | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+commit 5866ec05f5a2a613501095e1de64d641ad898021
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 13:14:41 2022 -0600
+
+ [benchmark-map] Remove rand() overhead from benchmark
+
+ perf/benchmark-map.cc | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 067225a86d4309020b950661ef9de6cb0c51eb98
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 13:04:36 2022 -0600
+
+ [set] Optimize const page_for() using last_page_lookup caching
+
+ Similar to previous commit.
+
+ This speeds up SetLookup benchmark by 50%, but that's because that
+ lookup always hits the same page...
+
+ src/hb-bit-set.hh | 24 +++++++++++++++++++-----
+ 1 file changed, 19 insertions(+), 5 deletions(-)
+
+commit c283e41ce39bb3740417bed4f240cf625fb38cd4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 12:45:48 2022 -0600
+
+ [set] Optimize non-const page_for() using last_page_lookup caching
+
+ This speeds up SetOrderedInsert tests by 15 to 40 percent, and the
+ subset_mplus1p benchmarks by 9 to 27 percent.
+
+ src/hb-bit-set.hh | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+commit dd005911b955da49a11aa755acb9addc0c8a2a24
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 29 12:23:53 2022 -0600
+
+ [benchmark-set] Reduce lookup benchmark overhead
+
+ Turnsout 90% was overhead... Now lookup is in the 4ns ballpark.
+
+ perf/benchmark-set.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 4de5352a3d4f501b68907fa419a4fed70676e720
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Apr 28 14:40:33 2022 -0600
+
+ [test] Add test
+
+ From https://github.com/harfbuzz/harfbuzz/issues/3545
+
+ Dropped the CFF table.
+
+ .../fonts/a59fd13f1525a91cbe529c882e93d9d1fbb80463.ttf | Bin 0 -> 1180 bytes
+ test/shape/data/in-house/tests/context-matching.tests | 1 +
+ 2 files changed, 1 insertion(+)
+
+commit d8292b8446b7875281a0d6fc8cb90e96b2f8d156
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Apr 27 12:38:35 2022 -0600
+
+ [CFF] Fix parsing of empty Index
+
+ https://github.com/harfbuzz/harfbuzz/issues/3545#issuecomment-1111047941
+
+ src/hb-ot-cff-common.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6454cec085ba51cefcd12b1f8027bc4a647347d5
+Author: David Corbett <corbett.dav@northeastern.edu>
+Date: Sun Apr 24 11:10:17 2022 -0400
+
+ [USE] Classify U+10A38 as CONS_MOD_BELOW
+
+ src/gen-use-table.py | 3 +++
+ src/hb-ot-shape-complex-use-table.hh | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
commit f7aee78e90bc53b3a95eb56d7550c9effe569ea2
Author: Khaled Hosny <khaled@aliftype.com>
Date: Sun Apr 24 05:47:57 2022 +0200