Commit Graph

13249 Commits

Author SHA1 Message Date
Behdad Esfahbod 5328b73fba [map] Reduce map item size again 2022-06-02 11:23:37 -06:00
Behdad Esfahbod 4f58ae60eb [map] Keep is_used, is_tombstone as booleans 2022-06-02 11:23:37 -06:00
Behdad Esfahbod 7ec3aad20f [shared_ptr] Fix hb_hash() crash on nullptr 2022-06-02 18:22:05 +01:00
Behdad Esfahbod 4d646773cf [cplusplus] Make .reference() return T* 2022-06-02 18:22:05 +01:00
Behdad Esfahbod 7e7a4a8f05 [cplusplus] Fix build 2022-06-02 18:22:05 +01:00
Behdad Esfahbod a089d91fda [hash] Adjust hash for shared_ptr, implement it for std::hash 2022-06-02 18:22:05 +01:00
Behdad Esfahbod e037325efb [hash] Remove custom hash, rely on std::hash 2022-06-02 18:22:05 +01:00
Behdad Esfahbod 0d3d5b62ae [cplusplus] Adjustments 2022-06-02 18:22:05 +01:00
Behdad Esfahbod 0b35940a72 Make hb::shared_ptr hashable 2022-06-02 18:22:05 +01:00
Behdad Esfahbod 3817bdfd7f [hb.hh] Include hb-cplusplus.hh 2022-06-02 18:22:05 +01:00
Behdad Esfahbod e0f3cab246 [cplusplus] Add hb-cplusplus.hh
Fixes https://github.com/harfbuzz/harfbuzz/issues/2152
2022-06-02 18:22:05 +01:00
Garret Rieger 98aaecd397 [subset] fix data race touching Crap() in cff subsetting. 2022-06-01 22:50:35 +01:00
Garret Rieger d8d96b26e7 [threads-test] Add a threads test against hb-subset. 2022-06-01 22:50:35 +01:00
Garret Rieger 858570b1d9 [subset] add some additional 32bit var store cases.
Test the path where the 32 bit delta is not included.
2022-06-01 19:31:55 +01:00
Garret Rieger 209d6aa2b7 [subset] Update make files for 32bit_var_store test. 2022-06-01 19:31:55 +01:00
Garret Rieger 9c41bfe1a6 [subset] Add subset test of font with 32 bit delta in a var store. 2022-06-01 19:31:55 +01:00
Behdad Esfahbod c88a6a9ec3 [face] Remove const from get_user_data prototype
This was done by mistake.

Since the returned user_data can be changed, face should not be marked
const. Other object types follow this parttern.
2022-06-01 09:46:41 -06:00
Behdad Esfahbod bc6ecaa262 [font-funcs] Handle case of null func but non-null destroy or user-data 2022-06-01 16:38:12 +01:00
Behdad Esfahbod 88ccbd2c43 [font-funcs] Optimize user-data/destroy storage
Fixes https://github.com/harfbuzz/harfbuzz/issues/2427
2022-06-01 16:38:12 +01:00
Behdad Esfahbod e421613e8f [sbix] Fix conditional 2022-06-01 09:07:57 -06:00
Behdad Esfahbod 55b911d863 [buffer] Mark getter functions as taking const buffer
Fixes https://github.com/harfbuzz/harfbuzz/issues/2873
2022-06-01 08:13:06 -06:00
Behdad Esfahbod 18cd15bede Rename test 2022-06-01 07:55:59 -06:00
Behdad Esfahbod 9e1479b5f0 [morx] Limit context length
Fixes https://github.com/harfbuzz/harfbuzz/issues/3097
2022-06-01 07:54:45 -06:00
Behdad Esfahbod 62e803b361 [sbix] Limit glyph extents
Fixes https://github.com/harfbuzz/harfbuzz/issues/3557
2022-06-01 07:39:20 -06:00
Behdad Esfahbod cd05d187c8 [font] Fix undefined-behavior when scales are negative
Fixes https://github.com/harfbuzz/harfbuzz/issues/3555
2022-06-01 07:27:53 -06:00
Behdad Esfahbod fc4d42ff99 [ft] Add API to notify that hb_font_t changed
New API:
- hb_ft_hb_font_changed()

Mostly reverts 56e0ff9ea1

Related https://github.com/harfbuzz/harfbuzz/issues/2270

Fixes https://github.com/harfbuzz/harfbuzz/issues/3619
2022-06-01 14:12:38 +01:00
Behdad Esfahbod a31fd97c35
Merge pull request #3432 from harfbuzz/fuzz-verify
[fuzz-shape] Verify shape output

https://github.com/harfbuzz/harfbuzz/pull/3432
2022-06-01 12:26:08 +01:00
Behdad Esfahbod e246723f0c [shape] Fail shaping internally if buffer ops exceeded 2022-06-01 05:00:06 -06:00
Behdad Esfahbod 5a058ba158 [shape-fuzzer] Add commented out more buffer-verify option
Those currently fail and I've been unable to debug them.

I tried two, passing them to hb-shape doesn't reproduce the failure. :(
2022-06-01 04:53:50 -06:00
Behdad Esfahbod 189f65344a [fuzz-shape] Verify shape output
Let the fuzzers loose on shape verify.
2022-06-01 04:53:50 -06:00
Behdad Esfahbod 9c0c31dfaa [buffer] When deleting glyphs, check cluster backwards as well 2022-06-01 04:52:10 -06:00
Behdad Esfahbod 0384f80e78 [buffer-verify] If shaping buffers failed during verification, pass the test 2022-06-01 04:50:15 -06:00
Behdad Esfahbod eba626ff6a [shape-plan] Return empty plan if buffer direction is invalid
Happens if buffer creation failed.
2022-06-01 04:49:46 -06:00
Behdad Esfahbod a441c6c16b [shape] Only verify if text_buffer is successful 2022-06-01 04:49:39 -06:00
Behdad Esfahbod f7f61aeb6f [buffer] Add TODO item 2022-06-01 04:48:59 -06:00
Behdad Esfahbod d72d37008d [shape] Allow null buffer
Ouch!
2022-06-01 04:48:40 -06:00
Behdad Esfahbod 33145a4b75 [test/shape] Pass --unsafe-to-concat to hb-shape 2022-05-31 06:36:08 -06:00
Behdad Esfahbod 45a2252607 [flags] Fix undefined-behavior
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/hb-buffer.hh:60:1 in
failure on clusterfuzz-testcase-minimized-hb-subset-get-codepoints-fuzzer-5736539338833920
2022-05-31 06:35:42 -06:00
Behdad Esfahbod f3f9fc1544 [buffer] Mark glyph_flags_t as flags 2022-05-31 06:35:42 -06:00
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 6dd7e31f71 [util] Accept | as delimiter in Unicode parsing 2022-05-31 04:09:59 -06: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 9eab6d326f [benchmark-set] Another Pause/Resume 2022-05-30 05:54:20 -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