Behdad Esfahbod
ab143e85c3
[buffer] Add HB_BUFFER_FLAG_DEFINED and HB_BUFFER_SERIALIZE_FLAG_DEFINED
...
New API:
+ HB_BUFFER_FLAG_DEFINED
+ HB_BUFFER_SERIALIZE_FLAG_DEFINED
2022-05-31 06:35:42 -06:00
Behdad Esfahbod
9a2a857043
[ot-shape] Don't verify buffer if shaping failed
...
Fixes all of fuzzing verify failures, which were result of buffer failure
on super-long results, which fails unsafe-to-break because shorter strings
don't fail shaping.
2022-05-31 06:35:42 -06:00
Behdad Esfahbod
f8b26f43ec
Merge pull request #3606 from harfbuzz/32bit-varstore
...
32bit varstore
2022-05-31 11:22:32 +01:00
Behdad Esfahbod
5af5a56593
[VarStore] Implement writing 32bit var-store
...
Untested.
Finishes fixing https://github.com/harfbuzz/harfbuzz/issues/2965
2022-05-31 03:58:35 -06:00
Behdad Esfahbod
75112098ac
[VarStore] Implement reading 32bit var-store
...
Untested.
Part of https://github.com/harfbuzz/harfbuzz/issues/2965
Serializing is incomplete.
2022-05-31 03:58:29 -06:00
Xavier Claessens
334bd013d9
Skip warning when building as subproject and ragel is missing
...
It is unlikely to be a developer build in that case.
2022-05-30 18:27:33 +02:00
Behdad Esfahbod
e5d6da7905
[varStore] rename shortCount to wordCount
2022-05-30 07:48:58 -06:00
Behdad Esfahbod
d11455f285
[blob] Fix strncpy() use in Mac resource opening code
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3616
2022-05-30 06:59:03 -06:00
Behdad Esfahbod
ea2dd54b68
[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.)
2022-05-30 05:54:20 -06:00
Behdad Esfahbod
ec6cefc46a
[repacker] Simplify map types
2022-05-30 05:54:20 -06:00
Behdad Esfahbod
cbcdf442c5
[map] Speed up map's own hash()
2022-05-30 05:54:20 -06:00
Behdad Esfahbod
de33ef61b7
[map] Add TODO item
2022-05-30 05:54:20 -06:00
Behdad Esfahbod
fc5739ea90
[test-map] Whitespace
2022-05-30 05:54:20 -06:00
Behdad Esfahbod
3e64abd5d6
Merge pull request #3613 from harfbuzz/threads-test
...
Threads test
2022-05-30 05:52:21 -06:00
Behdad Esfahbod
efa4385b16
Merge pull request #3615 from harfbuzz/gir-freetype
...
[gi] Add freetype2-2.0 for g-i-r includes
2022-05-30 05:40:56 -06:00
Behdad Esfahbod
f4a8b70016
More member initialization
2022-05-30 05:30:37 -06:00
Behdad Esfahbod
484cc18732
[test-shape-threads] Set language
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
315ef83b4e
Revert "Revert "[ot-lang] Use atomic int for cache""
...
This reverts commit c56ce8681c
.
The revert was not intentional. Ouch!
2022-05-30 05:09:26 -06:00
Khaled Hosny
3427511988
[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'
2022-05-30 04:48:22 +02:00
Behdad Esfahbod
97aa1ce6ba
[gsubgpos] Move some member initialization
2022-05-29 10:56:41 -06:00
Behdad Esfahbod
0bb4c1f021
[cache] Set default values for cache template parameters
2022-05-29 10:23:19 -06:00
Behdad Esfahbod
3957d2927d
[layout] Remove stale comment
2022-05-29 07:30:58 -06:00
Behdad Esfahbod
b6fed6f711
[set-digest] Minor don't use !! when auto bool conversion happens
2022-05-29 06:33:34 -06:00
Behdad Esfahbod
371e14d99c
Combine uses of map has() then get() with has(.., &..)
2022-05-28 13:40:30 -06:00
Behdad Esfahbod
b99efa6c8d
[map] Minor: use const reference in has()
2022-05-28 05:16:34 -06:00
Behdad Esfahbod
24d5a11dcb
[bimap] Add unlikely and minor optimization in is_empty()
2022-05-28 05:14:16 -06:00
Behdad Esfahbod
c56ce8681c
Revert "[ot-lang] Use atomic int for cache"
...
This reverts commit d61b207491
.
2022-05-28 04:25:51 -06:00
Behdad Esfahbod
63bc6be0cf
Merge pull request #3603 from harfbuzz/font-serial
...
Add font serial API
2022-05-27 08:25:22 -06:00
Behdad Esfahbod
e2aa29907d
[set] Use relaxed atomic ops for last_page_index
...
Since iterating a set from multiple threads is supported.
2022-05-27 07:06:02 -06:00
Behdad Esfahbod
d61b207491
[ot-lang] Use atomic int for cache
...
Fixes(?) https://github.com/harfbuzz/harfbuzz/issues/3612
2022-05-26 18:24:43 -06:00
Behdad Esfahbod
67bd147c73
Merge pull request #3610 from googlefonts/subset_create_tables_face
...
[subset] fix subsetting of faces created via hb_face_create_for_tables.
2022-05-26 05:16:07 -06:00
Behdad Esfahbod
a719e67887
[ot-font] Use atomic ops for cache serial number
...
This guarantees the cache is coherent.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
5248b2567b
[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
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
12fff976b6
[ot-var] Use atomic int for cached-serial
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
0919eaa6e8
[ot-font] Remove lock around cache
...
Not needed.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
3548b6025f
[ot-font] Cache h-advances for variable fonts
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
39a07bf3eb
[ot-font] Rename cache to varStore_cache
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
970e03ecae
[ot-font] Add a hb_ot_font_t struct
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
80c49933c6
[hb-ft] Adjust serial signature
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
56e0ff9ea1
[ft] If hb_font changed, update FT_Face
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2270
Rather untested.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
d0de389de8
[font] Fix test
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
a2015cd300
[font] Add a separate serial_coords
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
8629df188a
[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 :(.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
48db1c9583
[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.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
efa2a5796e
[map] Add hb_map_copy()
...
New API:
+ hb_map_copy()
2022-05-26 05:01:57 -06:00
Behdad Esfahbod
3b28cff9c0
[cff1] Fix null dereference on memory alloc failure
2022-05-26 04:42:17 -06:00
Behdad Esfahbod
8df9aba997
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
2022-05-26 03:59:21 -06:00
Garret Rieger
e00c7358a0
[subset] special case table presence check for hb_face_create_from_tables faces.
2022-05-25 22:39:00 +00:00
Garret Rieger
6a149a09e7
[subset] fix use of lazy static constructor.
2022-05-25 22:22:35 +00:00
Garret Rieger
d4c7939eb7
[subset] use a list of known tables instead of handled tables.
2022-05-25 22:11:32 +00:00