src


Log

Author Commit Date CI Message
Behdad Esfahbod e5d6da79 2022-05-23T12:25:39 [varStore] rename shortCount to wordCount
Behdad Esfahbod d11455f2 2022-05-30T06:59:03 [blob] Fix strncpy() use in Mac resource opening code Fixes https://github.com/harfbuzz/harfbuzz/issues/3616
Behdad Esfahbod ea2dd54b 2022-05-26T11:31:28 [map] Place item hash between key and value, not after them This way if only one of key and value is 64bit (eg. pointer), and other is 32bit, the whole item will fit in 128bit, whereas before it would have been bumped up to 196 if only value was 64bit (a common use-case for us.)
Behdad Esfahbod fc5739ea 2022-05-26T11:04:52 [test-map] Whitespace
Behdad Esfahbod ec6cefc4 2022-05-26T11:26:37 [repacker] Simplify map types
Behdad Esfahbod cbcdf442 2022-05-26T11:20:27 [map] Speed up map's own hash()
Behdad Esfahbod de33ef61 2022-05-26T11:07:21 [map] Add TODO item
Behdad Esfahbod 3e64abd5 2022-05-30T05:52:21 Merge pull request #3613 from harfbuzz/threads-test Threads test
Behdad Esfahbod efa4385b 2022-05-30T05:40:56 Merge pull request #3615 from harfbuzz/gir-freetype [gi] Add freetype2-2.0 for g-i-r includes
Behdad Esfahbod f4a8b700 2022-05-30T05:30:37 More member initialization
Behdad Esfahbod 484cc187 2022-05-30T05:06:43 [test-shape-threads] Set language
Behdad Esfahbod 315ef83b 2022-05-30T05:09:26 Revert "Revert "[ot-lang] Use atomic int for cache"" This reverts commit c56ce8681c209abd147328142806769752091b1c. The revert was not intentional. Ouch!
Khaled Hosny 34275119 2022-05-30T04:46:02 [gi] Add freetype2-2.0 for g-i-r includes Fixes the warnings: ../src/hb-ft.cc:810: Warning: HarfBuzz: hb_ft_face_create: argument ft_face: Unresolved type: 'FT_Face' ../src/hb-ft.cc:886: Warning: HarfBuzz: hb_ft_face_create_cached: argument ft_face: Unresolved type: 'FT_Face' ../src/hb-ft.cc:855: Warning: HarfBuzz: hb_ft_face_create_referenced: argument ft_face: Unresolved type: 'FT_Face' ../src/hb-ft.cc:920: Warning: HarfBuzz: hb_ft_font_create: argument ft_face: Unresolved type: 'FT_Face' ../src/hb-ft.cc:1029: Warning: HarfBuzz: hb_ft_font_create_referenced: argument ft_face: Unresolved type: 'FT_Face' ../src/hb-ft.cc:240: Warning: HarfBuzz: hb_ft_font_get_face: return value: Unresolved type: 'FT_Face' ../src/hb-ft.cc:262: Warning: HarfBuzz: hb_ft_font_lock_face: return value: Unresolved type: 'FT_Face'
Behdad Esfahbod 97aa1ce6 2022-05-29T10:32:59 [gsubgpos] Move some member initialization
Behdad Esfahbod 0bb4c1f0 2022-05-29T10:23:19 [cache] Set default values for cache template parameters
Behdad Esfahbod 3957d292 2022-05-29T07:30:58 [layout] Remove stale comment
Behdad Esfahbod b6fed6f7 2022-05-29T06:33:34 [set-digest] Minor don't use !! when auto bool conversion happens
Behdad Esfahbod 371e14d9 2022-05-28T13:40:30 Combine uses of map has() then get() with has(.., &..)
Behdad Esfahbod b99efa6c 2022-05-28T05:16:34 [map] Minor: use const reference in has()
Behdad Esfahbod 24d5a11d 2022-05-28T05:14:16 [bimap] Add unlikely and minor optimization in is_empty()
Behdad Esfahbod c56ce868 2022-05-28T04:25:51 Revert "[ot-lang] Use atomic int for cache" This reverts commit d61b2074915cf5f8044dcb8e3dafc04b5b58c6b8.
Behdad Esfahbod 63bc6be0 2022-05-27T08:25:22 Merge pull request #3603 from harfbuzz/font-serial Add font serial API
Behdad Esfahbod e2aa2990 2022-05-27T07:06:02 [set] Use relaxed atomic ops for last_page_index Since iterating a set from multiple threads is supported.
Behdad Esfahbod d61b2074 2022-05-26T18:24:43 [ot-lang] Use atomic int for cache Fixes(?) https://github.com/harfbuzz/harfbuzz/issues/3612
Behdad Esfahbod 67bd147c 2022-05-26T05:16:07 Merge pull request #3610 from googlefonts/subset_create_tables_face [subset] fix subsetting of faces created via hb_face_create_for_tables.
Behdad Esfahbod a719e678 2022-05-24T17:51:24 [ot-font] Use atomic ops for cache serial number This guarantees the cache is coherent.
Behdad Esfahbod 5248b256 2022-05-24T13:55:17 [ot-font/h-advance] Adjust varStore cache condition This gives best performance for short strings, now that we have a h-advance cache as well. The en-words benchmark in particular, now ot-font is faster than ft. Second to last line is of interest: Before: ----------------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ----------------------------------------------------------------------------------------------------- BM_Shape/en-words.txt/Roboto-Regular.ttf/hb 29.8 ms 29.8 ms 23 BM_Shape/en-words.txt/Roboto-Regular.ttf/ft 30.4 ms 30.4 ms 23 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/hb 16.3 ms 16.3 ms 43 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/ft 16.5 ms 16.5 ms 42 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/hb 18.0 ms 18.0 ms 39 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/ft 17.8 ms 17.8 ms 39 After: behdad@Behdads-MacBook-Pro harfbuzz % ninja -Cbuild && build/perf/benchmark-shape --benchmark_filter=en-words ----------------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ----------------------------------------------------------------------------------------------------- BM_Shape/en-words.txt/Roboto-Regular.ttf/hb 30.0 ms 30.0 ms 23 BM_Shape/en-words.txt/Roboto-Regular.ttf/ft 30.3 ms 30.3 ms 23 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/hb 16.3 ms 16.3 ms 43 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/ft 16.4 ms 16.4 ms 43 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/hb 17.6 ms 17.6 ms 40 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/ft 17.8 ms 17.8 ms 39
Behdad Esfahbod 12fff976 2022-05-24T13:42:25 [ot-var] Use atomic int for cached-serial
Behdad Esfahbod 0919eaa6 2022-05-24T13:07:24 [ot-font] Remove lock around cache Not needed.
Behdad Esfahbod 3548b602 2022-05-23T19:39:52 [ot-font] Cache h-advances for variable fonts
Behdad Esfahbod 39a07bf3 2022-05-23T19:13:05 [ot-font] Rename cache to varStore_cache
Behdad Esfahbod 970e03ec 2022-05-23T19:02:36 [ot-font] Add a hb_ot_font_t struct
Behdad Esfahbod 80c49933 2022-05-23T19:02:27 [hb-ft] Adjust serial signature
Behdad Esfahbod 56e0ff9e 2022-05-20T12:30:46 [ft] If hb_font changed, update FT_Face Fixes https://github.com/harfbuzz/harfbuzz/issues/2270 Rather untested.
Behdad Esfahbod d0de389d 2022-05-20T12:18:43 [font] Fix test
Behdad Esfahbod a2015cd3 2022-05-20T12:15:00 [font] Add a separate serial_coords
Behdad Esfahbod 8629df18 2022-05-20T12:06:22 [ft] Discard advance cache if font changed Uses newly added font serial API. Part of https://github.com/harfbuzz/harfbuzz/issues/2270 But doesn't set new coords on the FT_Face. That's a lot more work :(.
Behdad Esfahbod 48db1c95 2022-05-20T12:03:32 [font] Add serial API New API: + hb_font_get_serial() + hb_font_changed() Fixes https://github.com/harfbuzz/harfbuzz/issues/2426 Unused internally as of now.
Behdad Esfahbod efa2a579 2022-05-24T16:24:00 [map] Add hb_map_copy() New API: + hb_map_copy()
Behdad Esfahbod 3b28cff9 2022-05-26T04:42:17 [cff1] Fix null dereference on memory alloc failure
Behdad Esfahbod 8df9aba9 2022-05-26T03:59:21 Actually try to fix null-size undefined behavior Related to: https://github.com/harfbuzz/harfbuzz/pull/2067 https://bugzilla.mozilla.org/show_bug.cgi?id=1577584
Garret Rieger e00c7358 2022-05-25T22:35:23 [subset] special case table presence check for hb_face_create_from_tables faces.
Garret Rieger 6a149a09 2022-05-25T22:22:35 [subset] fix use of lazy static constructor.
Garret Rieger d4c7939e 2022-05-25T22:11:32 [subset] use a list of known tables instead of handled tables.
Garret Rieger 3472f73b 2022-05-25T21:49:12 [subset] also include no subset tables when guessing which tables are present.
Garret Rieger 9564d987 2022-05-25T21:16:37 [subset] fix subsetting of faces created via hb_face_create_for_tables. Fixes #3609.
Behdad Esfahbod 6010feee 2022-05-24T09:00:44 [varStore] Rename variable as per review https://github.com/harfbuzz/harfbuzz/pull/3605
Behdad Esfahbod 3eb7eff4 2022-05-21T15:25:53 Remove varstore cache use if HB_NO_VAR
Behdad Esfahbod 099482a3 2022-05-21T15:20:23 [ot-font] Cache v_advance varstore as well
Behdad Esfahbod d9acc045 2022-05-21T14:16:21 [VarStore] Sprinkle cache_t type around It's available so no need to use void*.
Behdad Esfahbod da38312e 2022-05-20T17:32:56 [VarStore] Pepper cache with likely()
Behdad Esfahbod cf8f00e3 2022-05-20T17:14:10 [VarStore] Don't use NAN Is faster. With this, I'm seeing 25 to 28% speedup in glyph_h_advances benchmark of benchmark-font for var/hb tests.
Behdad Esfahbod 5336ba70 2022-05-20T17:03:18 [HVAR] Cache VarStore region scalars
Behdad Esfahbod 880f50f7 2022-05-20T16:50:00 Refactor varstore cache
Behdad Esfahbod f2a2fb91 2022-05-20T16:06:05 [GPOS] Cache VarStore region scalars
Behdad Esfahbod 5fbc70c5 2022-05-20T14:07:27 [VarStore] Add cache API
Behdad Esfahbod 05e82aa1 2022-05-20T12:17:31 [ft] Add missing lock to kerning function
Behdad Esfahbod 4ea27257 2022-05-20T13:19:27 [set/map] Expose hash API publicly New API: + hb_set_hash() + hb_map_hash()
Behdad Esfahbod 2e186d9f 2022-05-20T13:15:52 [buffer] Improve hash function of segment_properties_t
Khaled Hosny aee123fc 2022-05-20T21:07:25 4.3.0
Behdad Esfahbod 975a5f91 2022-05-20T12:34:49 [array] Use hb_memcmp instead of memcmp Fixes ubsan error.
Behdad Esfahbod 55804e8d 2022-05-20T11:40:44 [hb-ft] Minor rearrange of struct members To make clear what members the lock protects.
Garret Rieger cbf8f44c 2022-05-19T21:25:21 [subset-perf] swap instead of copying vertice's when reordering during sort.
Garret Rieger b32ca2a2 2022-05-19T20:45:39 [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.
Behdad Esfahbod 4266cf3b 2022-05-19T18:15:46 [array] Specialize operator== for bytes_t and ubytes_t
Behdad Esfahbod 6eaa22e9 2022-05-19T18:00:58 [serialize] Reduce link_t size from 16 to 12
Behdad Esfahbod 30ba9a39 2022-05-19T17:34:58 [vector] Add emplacing push implementation
Garret Rieger 73b8360d 2022-05-19T22:59:51 [subset] fix fuzzer found underflow when heap push fails. Fixes https://oss-fuzz.com/testcase-detail/5148625505746944.
Behdad Esfahbod f1bf14ea 2022-05-19T16:42:35 Revert "[set] Cache hash value" This reverts commit 44952bcc259a906b8875ed62dc40de96ade8b95c. While we investivate https://github.com/harfbuzz/harfbuzz/issues/3599
Behdad Esfahbod b4d1ec31 2022-05-19T16:06:21 [algs] Declare coerce() as constexpr
Behdad Esfahbod 2fdb7616 2022-05-19T16:00:43 [map Further adjust hash function
Behdad Esfahbod 01fc90b6 2022-05-19T16:00:06 [map] Adjust hash function
Behdad Esfahbod a47b0aeb 2022-05-19T15:52:00 [vector] Fix remove() implementation test-vector under valgrind happy now.
Behdad Esfahbod 3bd755c3 2022-05-19T15:51:18 [test-vector] Test remove() Currently buggy. Valgrind confirms.
Behdad Esfahbod 58f848da 2022-05-19T15:42:54 [set/map] Adjust hash function return type
Behdad Esfahbod 6544fc28 2022-05-19T15:28:09 [vector] Add further copy implementation
Behdad Esfahbod c19f1169 2022-05-19T15:27:52 [meta] Remove non-existing gcc4 trait implementation
Behdad Esfahbod 679b900e 2022-05-19T15:27:32 [meta] Fix gcc4 trait implementation
Behdad Esfahbod fb77f48f 2022-05-19T15:02:10 [vector] Optimize vector copy
Behdad Esfahbod 28b44ac4 2022-05-19T15:01:56 [set] Switch set copy to vector operator = Slows it down currently.
Behdad Esfahbod 37d3275d 2022-05-19T15:01:23 [test-vector] Enable disabled test This seems to work already.
Behdad Esfahbod 544ffb91 2022-05-19T14:50:12 [set] Adjust grow_vector condition
Behdad Esfahbod 0623aa59 2022-05-19T14:12:42 [benchmark-set] Add benchmark for set copy
Behdad Esfahbod 44952bcc 2022-05-19T14:02:48 [set] Cache hash value
Behdad Esfahbod 844ac328 2022-05-19T13:54:31 [set] Fix hb_set_t hash stability
Behdad Esfahbod 2d0b1248 2022-05-19T13:53:53 [test-map] Test hb_set_t hash stability Fails currently.
Behdad Esfahbod 561e02fe 2022-05-19T13:38:52 [map] Make hb_map_t hashable
Behdad Esfahbod ad176990 2022-05-19T13:36:12 [map] Add is_equal() / towards making hb_map_t hashable New API: + hb_map_is_equal()
Behdad Esfahbod 14a24d8e 2022-05-19T13:03:50 [vector] Make hb_vector_t hashable
Behdad Esfahbod 124f9aeb 2022-05-19T12:58:02 [set] Make hb_set_t hashable
Garret Rieger 3ab2c793 2022-05-19T17:23:36 [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.
David Corbett e3e685e5 2022-05-18T15:05:55 [ot-tags] Fix `min_subtag_len` calculations
Garret Rieger 0b1c2ff9 2022-05-18T23:32:03 [subset-perf] Remove extra map lookup in ClassDef subset methods.
Garret Rieger 13ace77f 2022-05-18T22:38:43 [subset-perf] Use glyph_map instead of set in ClassDefFormat.
Garret Rieger adae2f22 2022-05-18T21:42:28 [subset-perf] Cache a glyph map for gsub. This allows us in some cases to avoid using glyph_set_gsub as a filter.
Behdad Esfahbod 202e6c46 2022-05-18T17:12:43 [subset] Remove unnecessary test
Behdad Esfahbod cedf7396 2022-05-18T16:52:35 Add some commented-out code
Behdad Esfahbod 6b62c10f 2022-05-18T16:27:54 [priority-queue] Remove old init/fini
Behdad Esfahbod bff8248a 2022-05-18T16:25:03 [repacker] Pre-alloc vertices
Behdad Esfahbod 39a424ca 2022-05-18T16:17:16 [priority-queue] Optimize heap access