src


Log

Author Commit Date CI Message
Behdad Esfahbod 39820af7 2022-06-07T10:18:38 [layout] Add HB_NO_OT_LAYOUT_LOOKUP_CACHE to disable caching lookups Enabled when optimize-size profile is enabled.
Behdad Esfahbod 845279c3 2022-06-07T16:40:22 Merge pull request #3636 from harfbuzz/classdef-cache Classdef cache
Behdad Esfahbod b59e25f2 2022-06-07T09:27:09 [cff] Try fixing Heap-buffer-overflow in CFF::Charset::collect_glyph_to_sid_map Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47790
Behdad Esfahbod c8fb048f 2022-06-07T09:20:27 [gsubgpos] Document caching
Behdad Esfahbod 5963cf44 2022-06-07T09:12:45 [gsubgpos] Merge cache_enter and cache_leave entry points Saves a pointer per subtable
Behdad Esfahbod d4c09e9a 2022-06-07T09:03:30 [gsubgpos] Remove apply_cached() entry point Just use a bool to apply()
Behdad Esfahbod b96622d1 2022-06-05T02:45:41 [layout] Use a cache for main input ClassDef of (Chain)ContextLookupFormat2 This commit adds a per-lookup caching infrastructure to GSUB/GPOS, and uses it to cache input ClassDef.get_class value for (Chain)ContextLookupFormat2. For fonts heavy on use of heave class-based2 context matching, this shows a good speedup. For NotoNastaliqUrdu for example, I observe 17% speedup. Unfortunately not many other lookups can use a cache like this :(. https://github.com/harfbuzz/harfbuzz/pull/3636
Xavier Claessens 4266f4e2 2022-06-03T12:06:56 Fix check-* scripts when harfbuzz is a subproject When harfbuzz is a subproject paths are in the form "subprojects/harfbuzz/src/...". Instead of removing "src/" prefix, take the absolute path and make it relative to current source dir. This fix regression introduced in https://github.com/harfbuzz/harfbuzz/pull/3394.
Behdad Esfahbod 15543f70 2022-06-04T10:55:50 [indic-like] Move allocation of syllable() buffer var to shapers that use it In indic, we don't have a pause location release the var.
Behdad Esfahbod 104dc85a 2022-06-04T06:56:35 [buffer] Add try_allocate for buffer variables
Behdad Esfahbod b5f621b0 2022-06-05T07:52:51 [cplusplus] Internally allow using hb_unique_ptr with hb_free() ...for arbitrary types.
Behdad Esfahbod f18eb000 2022-06-05T04:17:05 [buffer] Mark a variable as unused Weird. Somehow our HB_TINY bot started erring as this var being unused in non-debug builds. Not sure why now... In file included from src/hb-ot-map.hh:32:0, from src/hb-ot-shape.hh:32, from src/hb-aat-layout.hh:32, from src/hb-aat-layout.cc:30, from src/harfbuzz.cc:1: src/hb-buffer.hh: In member function ‘void hb_buffer_t::assert_var(unsigned int, unsigned int)’: src/hb-buffer.hh:192:18: error: unused variable ‘bits’ [-Werror=unused-variable] unsigned int bits = (1u<<end) - (1u<<start); ^~~~ cc1plus: some warnings being treated as errors Error: Process completed with exit code 1.
Behdad Esfahbod e6409d39 2022-06-05T06:57:37 Revert "[layout] Use a cache for main input ClassDef of (Chain)ContextLookups" This reverts commit 57d1c08739d0acd94b96da2f9d5dd6c0ff3b3722. Err. This was an accident.
Behdad Esfahbod 57d1c087 2022-06-05T02:45:41 [layout] Use a cache for main input ClassDef of (Chain)ContextLookups
Behdad Esfahbod 92e81ab1 2022-06-05T01:14:32 [indic/khmer/myanmar] Shift category numbers around to avoid overlap Fixes https://github.com/harfbuzz/harfbuzz/issues/3632
Behdad Esfahbod d6dbc0d1 2022-06-05T00:58:53 [gi/ft] Silence warnings gi doesn't understand that FT_Face is a pointer, and not bare struct. So it skips these APIs anyway. Mark skip to silense the warning. ../src/hb-ft.cc:242: Warning: HarfBuzz: hb_ft_font_get_face: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip) ../src/hb-ft.cc:264: Warning: HarfBuzz: hb_ft_font_lock_face: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
Behdad Esfahbod f78a2509 2022-06-05T00:55:35 [gi] Remove Xconstructor annotations
Behdad Esfahbod cb961eac 2022-06-05T00:44:07 [configs] Fix builds with HB_NO_BUFFER_SERIALIZE but not HB_NO_BUFFER_VERIFY https://github.com/harfbuzz/harfbuzz/commit/e986c12075a69300a5e114fe139ae5acd762ef1b#commitcomment-75339317
Behdad Esfahbod 67852504 2022-06-04T08:45:03 [indic/myanmar] No-op update to machines
Behdad Esfahbod 20a61ca4 2022-06-04T08:35:22 [myanmar] Fold D category into GB Trying to free a byte the buffer vars, for caching of lookups. Part of https://github.com/harfbuzz/harfbuzz/issues/3633
Behdad Esfahbod f9b643f6 2022-06-04T07:29:40 [layout] s/hb_get_subtables_context_t/hb_accelerate_subtables_context_t/g
Behdad Esfahbod d4dfb8c1 2022-06-04T06:50:38 [arabic] Free up buffer variable earlier
Behdad Esfahbod cc7ebb0f 2022-06-04T05:42:58 Remove remaining mention to complex shapers in the code https://github.com/harfbuzz/harfbuzz/pull/3628#issuecomment-1146248037
Behdad Esfahbod b39b5f2f 2022-06-03T04:10:28 [name] Implement approximate language matching Very rudimentary. Fixes https://github.com/harfbuzz/harfbuzz/issues/3354
Behdad Esfahbod 40d7d56e 2022-06-03T05:40:18 [subset-input] Minor move
Behdad Esfahbod 40193adb 2022-06-03T05:35:19 [subset] Update default features list
Behdad Esfahbod 5bfb0b72 2022-06-03T02:56:41 Rename s/shape-complex/shaper/g
Behdad Esfahbod 44be1e5d 2022-06-03T02:54:33 s/SHAPE_COMPLEX/SHAPER/g
Behdad Esfahbod 6fbb5521 2022-06-03T02:50:25 s/FLAG_COMPLEX/FLAG_SHAPER/g
Behdad Esfahbod 6d9e94d2 2022-06-03T02:48:34 s/hb_ot_shape_complex_categorize/hb_ot_shaper_categorize/g
Behdad Esfahbod a560182c 2022-06-03T02:46:58 s/complex_var/ot_shaper_var/g
Behdad Esfahbod 13fbed29 2022-06-03T02:45:04 s/HB_OT_SHAPE_COMPLEX_MAX_COMBINING_MARKS/HB_OT_SHAPE_MAX_COMBINING_MARKS/g
Behdad Esfahbod 44a7b3b7 2022-06-03T02:42:34 s/ot_complex_shaper/ot_shaper/g
Behdad Esfahbod e5161977 2022-06-03T02:40:54 s/COMPLEX_SHAPER/OT_SHAPER/g
Behdad Esfahbod f3a8b7f3 2022-06-03T02:21:46 [algs] Test hb_hash()
Behdad Esfahbod 215a0afa 2022-06-03T01:48:46 [algs] Remove unused hb_coerce()
Behdad Esfahbod 5dc12d7d 2022-06-03T01:37:02 [cmap] Rewrite set_for() slightly
Behdad Esfahbod 9552955e 2022-06-03T01:33:01 Add an unlikely
Behdad Esfahbod 88f00ecb 2022-06-03T01:30:27 [map] Fix iter_ref () and test it
Behdad Esfahbod a42c624f 2022-06-03T01:22:34 Convert one final use of hashmap to unique_ptr
Behdad Esfahbod f13a7954 2022-06-03T01:17:20 [subset] Convert another use of hashmap to unique_ptr
Behdad Esfahbod 25f57230 2022-06-03T01:11:22 [map] Return references from new iter_ref()
Behdad Esfahbod a7a68861 2022-06-02T18:59:15 [cmap] Convert another map use to unique_ptr
Behdad Esfahbod 997d9cc4 2022-06-02T18:04:12 [map] Make unique_ptr hashable
Behdad Esfahbod 8bb2a332 2022-06-02T15:18:23 [map] Remove unneeded assignment
Behdad Esfahbod d7785a6d 2022-06-02T12:42:24 [cplusplus] Add unique_ptr
Behdad Esfahbod bca710e8 2022-06-02T12:06:25 [gsubgpos] Use map has() instead of get() when appropriate
Behdad Esfahbod e9407a2b 2022-06-02T11:29:44 Use shared_ptr<hb_set_t> in one place See if valgrind is happy...
Behdad Esfahbod a42a703c 2022-06-02T11:51:20 [shared_ptr] Clear p in destructor
Behdad Esfahbod f0a0dcad 2022-06-02T11:25:56 [test-map] Test hashing shared_ptr
Behdad Esfahbod 4c1b5d9e 2022-06-02T11:25:11 Whitespace
Behdad Esfahbod b9230c54 2022-06-02T11:18:38 [map] Fix has()
Behdad Esfahbod 97ea10a6 2022-06-02T11:14:17 Remove old nullptr_t hacks Were used for hashmap before.
Behdad Esfahbod 3f78a71c 2022-06-02T11:11:35 [map] Finally! Just can usd hb_hashmap_t<obj_t, obj_t> Yay!
Behdad Esfahbod 0ccab339 2022-06-02T10:43:36 [map] Remove invalid-key template arguments since unused
Behdad Esfahbod 3f6a8f69 2022-06-02T10:36:07 [map] Remove invalid-key special-casing Can override invalid-key value now.
Behdad Esfahbod 5328b73f 2022-06-02T10:32:56 [map] Reduce map item size again
Behdad Esfahbod 4f58ae60 2022-06-02T10:13:55 [map] Keep is_used, is_tombstone as booleans
Behdad Esfahbod 7ec3aad2 2022-06-02T10:50:55 [shared_ptr] Fix hb_hash() crash on nullptr
Behdad Esfahbod 4d646773 2022-06-02T10:02:44 [cplusplus] Make .reference() return T*
Behdad Esfahbod 7e7a4a8f 2022-06-02T09:59:41 [cplusplus] Fix build
Behdad Esfahbod a089d91f 2022-06-02T09:55:43 [hash] Adjust hash for shared_ptr, implement it for std::hash
Behdad Esfahbod e037325e 2022-06-02T08:51:12 [hash] Remove custom hash, rely on std::hash
Behdad Esfahbod 0d3d5b62 2022-06-02T08:00:08 [cplusplus] Adjustments
Behdad Esfahbod 0b35940a 2022-06-01T15:10:19 Make hb::shared_ptr hashable
Behdad Esfahbod 3817bdfd 2022-06-01T12:35:03 [hb.hh] Include hb-cplusplus.hh
Behdad Esfahbod e0f3cab2 2022-06-01T11:51:43 [cplusplus] Add hb-cplusplus.hh Fixes https://github.com/harfbuzz/harfbuzz/issues/2152
Garret Rieger 98aaecd3 2022-06-01T21:01:16 [subset] fix data race touching Crap() in cff subsetting.
Behdad Esfahbod c88a6a9e 2022-06-01T09:46:41 [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.
Behdad Esfahbod bc6ecaa2 2022-06-01T09:19:11 [font-funcs] Handle case of null func but non-null destroy or user-data
Behdad Esfahbod 88ccbd2c 2022-06-01T08:44:07 [font-funcs] Optimize user-data/destroy storage Fixes https://github.com/harfbuzz/harfbuzz/issues/2427
Behdad Esfahbod e421613e 2022-06-01T09:07:57 [sbix] Fix conditional
Behdad Esfahbod 55b911d8 2022-06-01T08:13:06 [buffer] Mark getter functions as taking const buffer Fixes https://github.com/harfbuzz/harfbuzz/issues/2873
Behdad Esfahbod 9e1479b5 2022-06-01T07:54:45 [morx] Limit context length Fixes https://github.com/harfbuzz/harfbuzz/issues/3097
Behdad Esfahbod 62e803b3 2022-06-01T07:38:21 [sbix] Limit glyph extents Fixes https://github.com/harfbuzz/harfbuzz/issues/3557
Behdad Esfahbod cd05d187 2022-06-01T07:27:30 [font] Fix undefined-behavior when scales are negative Fixes https://github.com/harfbuzz/harfbuzz/issues/3555
Behdad Esfahbod fc4d42ff 2022-06-01T05:19:23 [ft] Add API to notify that hb_font_t changed New API: - hb_ft_hb_font_changed() Mostly reverts 56e0ff9ea129aa91dfcc746cd61f8cbbc427dba7 Related https://github.com/harfbuzz/harfbuzz/issues/2270 Fixes https://github.com/harfbuzz/harfbuzz/issues/3619
Behdad Esfahbod e246723f 2022-06-01T04:54:18 [shape] Fail shaping internally if buffer ops exceeded
Behdad Esfahbod 9c0c31df 2022-05-31T09:35:49 [buffer] When deleting glyphs, check cluster backwards as well
Behdad Esfahbod 0384f80e 2022-05-31T08:23:48 [buffer-verify] If shaping buffers failed during verification, pass the test
Behdad Esfahbod eba626ff 2022-05-31T08:20:56 [shape-plan] Return empty plan if buffer direction is invalid Happens if buffer creation failed.
Behdad Esfahbod a441c6c1 2022-05-31T07:52:04 [shape] Only verify if text_buffer is successful
Behdad Esfahbod f7f61aeb 2022-05-31T09:37:38 [buffer] Add TODO item
Behdad Esfahbod d72d3700 2022-06-01T04:43:10 [shape] Allow null buffer Ouch!
Behdad Esfahbod 45a22526 2022-05-31T06:23:47 [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
Behdad Esfahbod f3f9fc15 2022-05-31T06:05:57 [buffer] Mark glyph_flags_t as flags
Behdad Esfahbod ab143e85 2022-05-31T06:00:41 [buffer] Add HB_BUFFER_FLAG_DEFINED and HB_BUFFER_SERIALIZE_FLAG_DEFINED New API: + HB_BUFFER_FLAG_DEFINED + HB_BUFFER_SERIALIZE_FLAG_DEFINED
Behdad Esfahbod 9a2a8570 2022-05-31T04:25:20 [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.
Behdad Esfahbod f8b26f43 2022-05-31T11:22:32 Merge pull request #3606 from harfbuzz/32bit-varstore 32bit varstore
Behdad Esfahbod 5af5a565 2022-05-30T08:32:50 [VarStore] Implement writing 32bit var-store Untested. Finishes fixing https://github.com/harfbuzz/harfbuzz/issues/2965
Behdad Esfahbod 75112098 2022-05-23T12:42:15 [VarStore] Implement reading 32bit var-store Untested. Part of https://github.com/harfbuzz/harfbuzz/issues/2965 Serializing is incomplete.
Xavier Claessens 334bd013 2022-05-30T11:46:08 Skip warning when building as subproject and ragel is missing It is unlikely to be a developer build in that case.
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 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 fc5739ea 2022-05-26T11:04:52 [test-map] Whitespace
Behdad Esfahbod 3e64abd5 2022-05-30T05:52:21 Merge pull request #3613 from harfbuzz/threads-test Threads test