src


Log

Author Commit Date CI Message
Behdad Esfahbod 72881234 2023-07-08T14:14:27 Allow overriding HB_ALWAYS_INLINE
Behdad Esfahbod 9fea19eb 2023-07-08T13:56:24 [shape] Another always-inline
Behdad Esfahbod 5b45c56c 2023-07-08T13:47:41 [shape] Always-inline more Another 10% speedup in BM_Shape Gulzar-Regular.
Behdad Esfahbod bb9692e8 2023-07-08T13:45:48 [shape] Always-inline match_input 10% speedup in BM_Shape Gulzar-Regular.
Behdad Esfahbod 6c451054 2023-07-08T12:55:34 [sanitize] Sprinkle a few unlikely's
Behdad Esfahbod 4ecc62c2 2023-07-08T12:53:23 [sanitize] Simplify ChainRule::sanitize again check_struct does the same now.
Behdad Esfahbod 253ec08b 2023-07-08T12:48:05 [sanitize] Speed up check_struct on x64
Behdad Esfahbod fb02f4a8 2023-07-08T12:29:18 [sanitize] Micro-optimize ChainRule::sanitize
Khaled Hosny c650858c 2023-07-08T13:57:05 [graphite] Fix cluster advance width Based on https://github.com/harfbuzz/harfbuzz/issues/4309#issuecomment-1624730406 Fixes https://github.com/harfbuzz/harfbuzz/issues/4309
Behdad Esfahbod 73ee9c34 2023-07-07T22:47:20 Revert "[sanitize] Only check trailing edge of ranges" This reverts commit e4856cf8098b9741a910e7f7979096cf11d8fead. This is wrong on at least 32-bit systems. Might add a condition version later.
Behdad Esfahbod 0b879afb 2023-07-07T22:35:43 [sanitize] Inline Coverage::sanitize
Behdad Esfahbod 92448910 2023-07-07T22:16:24 [sanitize] Minor inline a few more short functions
Behdad Esfahbod d8450420 2023-07-07T21:56:17 [sanitize] Optimize away an overflow check when not needed When the length argument is 16bit...
Behdad Esfahbod e4856cf8 2023-07-07T21:21:33 [sanitize] Only check trailing edge of ranges Assumptions... Speeds up Gulzar load_face_and_shape benchmark by 7%.
Behdad Esfahbod 6a683ea6 2023-07-07T21:02:15 [sanitize] Enlighten check_range() some more No need to check for len=0 arrays. They must still be in range.
Behdad Esfahbod c24ea103 2023-07-07T20:43:20 [sanitize] Minor tweak to len=0 case which is handled otherwise anyway
Behdad Esfahbod 403bc7ca 2023-07-07T20:17:32 [sanitize] Simplify Rule::sanitize()
Behdad Esfahbod 385896ff 2023-07-07T19:56:19 [sanitize] Speed up ChainRule::sanitize() 10% speedup in sanitizing Gulzar-Regular.
Behdad Esfahbod 2006d321 2023-07-07T17:07:11 [sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size Unfortunately this doesn't speed up NotoNastaliq or Gulzar as I was hoping for. Their GSUB tables are not large enough for this to kick in...
Behdad Esfahbod 7a85663c 2023-07-07T19:21:18 Revert "[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size" This reverts commit 10f8556c73f3cf231c6b5a900a6a1903f9516f90. This was, unfortunately, wrong :(.
Behdad Esfahbod f2a3680f 2023-07-07T19:21:03 Revert "[gsubgpos] Limit (Chain)ContextFormat3 for consistency" This reverts commit 90b48917dadbef51bc5e90904d0f81e81199b9e2.
Behdad Esfahbod 90b48917 2023-07-07T18:50:01 [gsubgpos] Limit (Chain)ContextFormat3 for consistency
Behdad Esfahbod 10f8556c 2023-07-07T17:07:11 [sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size
Behdad Esfahbod 68b78914 2023-07-07T17:07:11 [sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size Unfortunately this doesn't speed up NotoNastaliq or Gulzar as I was hoping for. Their GSUB tables are not large enough for this to kick in...
Behdad Esfahbod 90752cd5 2023-07-07T15:47:28 [type] Add HeadlessArray16Of
Behdad Esfahbod 59abcda2 2023-07-07T14:27:18 [sanitize] Add an ALWAYS_INLINE Looks like it was always inlined anyway.
Behdad Esfahbod 45a17212 2023-07-06T16:06:50 [ot-font] Prefer CFF2 over CFF1
أحمد المحمودي 43d0aff6 2023-07-04T09:22:53 [introspection] Pass both libharfbuzz_gobject & libharfbuzz as positional parameters Fixes #4304
Behdad Esfahbod 25297408 2023-07-03T10:34:26 [COLR] Fix PaintComposite sanitize timeout Was timing out after recent sanitize() change. Fixes https://oss-fuzz.com/testcase-detail/5692635449524224
Behdad Esfahbod de2c1073 2023-07-02T16:44:48 [ot-map] Speed up for default shaper Sort late, the reduced number of features.
Behdad Esfahbod 8156c5a6 2023-07-02T16:35:32 [ot-map] Minor micro-optimize
Behdad Esfahbod 5ac9eaa0 2023-07-02T16:18:08 [sanitize] Minor micro-optimize
Behdad Esfahbod e8948d63 2023-07-02T15:35:18 [set-digest] Micro-optimize more
Behdad Esfahbod cb73ba71 2023-07-02T15:27:26 [set-digest] Fixup for previous commit
Behdad Esfahbod 918ad892 2023-07-02T14:54:24 [set-digest] Early terminate add_range() if we're full
Behdad Esfahbod bb33675e 2023-07-02T14:11:40 [sanitize] Micro-optimize check_range()
Behdad Esfahbod d1c82a1c 2023-07-02T13:38:22 [sanitize] Speed up check_struct() Don't account for length here. Should not be a problem. Fingers crossed fuzzers. 18% speed up in load_face_and_shape Gulzar-Regular.
Behdad Esfahbod ec943866 2023-07-02T13:29:53 [OffsetTo] Micro-optimize away a check
Behdad Esfahbod eae82788 2023-07-02T13:07:26 [GPOS] Micro-optimize lazy_some_gpos check Speeds up 11% in: BM_Font/load_face_and_shape/Roboto-Regular.ttf/hb
Behdad Esfahbod 46e54a23 2023-07-02T13:03:16 [GPOS] Remove extra check
Behdad Esfahbod 7f5380fe 2023-07-02T12:19:22 [Composite] Don't apply transformation if phantom_only
Behdad Esfahbod 0cf759b0 2023-07-02T12:15:43 [Glyph] Don't shift anchored Composite if phantom_only Fixes https://oss-fuzz.com/testcase-detail/5114131137822720
Behdad Esfahbod 645bde47 2023-07-02T12:07:22 [Glyph] Pass phantom-only to gvar only for SIMPLE glyphs For Composites we need to get the translation offset deltas.
Behdad Esfahbod e92eefaa 2023-07-02T11:35:51 [gvar] Cache two values in shared_tuple_active_idx Speeds up varc-hangul.ttf draw_glyph by 10%.
Behdad Esfahbod 2d6091fc 2023-06-30T11:48:56 [GPOS] Make AnchorMatrix sanitize lazy again Was reverted in the previous commit, because it was incomplete.
Behdad Esfahbod 0887382c 2023-06-30T11:39:46 [GPOS] Fix sanitize
Behdad Esfahbod 83eb744e 2023-06-30T11:33:39 [sanizie] Inline check_range if not OPTIMIZE_SIZE BM_Font/load_face_and_shape/NotoNastaliqUrdu-Regular.ttf/hb -0.1046 -0.1051 194 173 193 172 BM_Font/load_face_and_shape/NotoSerifMyanmar-Regular.otf/hb -0.2401 -0.2412 36 27 36 27
Behdad Esfahbod 690af7aa 2023-06-30T10:36:01 [GPOS] Sanitize Device tables lazily This speeds up face loading for variable fonts by 80%! Comparing before to after Benchmark Time CPU Time Old Time New CPU Old CPU New --------------------------------------------------------------------------------------------------------------------------------------------------------------- BM_Font/load_face_and_shape/Roboto-Regular.ttf/hb -0.0368 -0.0366 20 20 20 19 BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/hb -0.7149 -0.7162 77 22 77 22 BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/var/hb -0.7241 -0.7255 80 22 79 22 BM_Font/load_face_and_shape/SourceSansPro-Regular.otf/hb -0.1441 -0.1445 28 24 28 24 BM_Font/load_face_and_shape/AdobeVFPrototype.otf/hb -0.7893 -0.7910 66 14 66 14 BM_Font/load_face_and_shape/AdobeVFPrototype.otf/var/hb -0.7865 -0.7882 67 14 66 14 BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/hb -0.8895 -0.8900 227 25 226 25 BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/var/hb -0.8895 -0.8900 226 25 225 25 BM_Font/load_face_and_shape/Comfortaa-Regular-new.ttf/hb -0.5512 -0.5531 42 19 42 19 BM_Font/load_face_and_shape/NotoNastaliqUrdu-Regular.ttf/hb -0.1511 -0.1510 227 192 225 191 BM_Font/load_face_and_shape/NotoSerifMyanmar-Regular.otf/hb -0.1494 -0.1498 41 35 40 34 OVERALL_GEOMEAN -0.6443 -0.6456 0 0 0 0
Behdad Esfahbod 7a356682 2023-06-30T10:50:25 Minor variable fix
Behdad Esfahbod d338506c 2023-06-30T10:13:05 [GPOS] Reuse sanitize_values_stride_unsafe in another function
Behdad Esfahbod 794fac32 2023-06-29T20:55:52 [glyf] Minor another range for loop
Behdad Esfahbod 0ae16766 2023-06-29T20:38:42 [CompositeGlyph] Minor use a range for loop
Behdad Esfahbod 05c01ad5 2023-06-29T16:49:20 [SimpleGlyph] Minor use a range for loop
Behdad Esfahbod 4123e0c7 2023-06-29T16:27:35 [path-builder] Speed up mid-point calculation
Behdad Esfahbod 73376b24 2023-06-29T16:14:45 [subset/cff1] More error handling
Behdad Esfahbod cc44b3bc 2023-06-29T16:12:10 [subset/cff1] Handle an error condition Fixes https://oss-fuzz.com/testcase-detail/5191907895279616
Behdad Esfahbod fc38c01a 2023-06-29T15:29:15 Minor inline a function
Behdad Esfahbod a520177e 2023-06-29T14:56:05 [gvar] Remove unnecessary initialization
Behdad Esfahbod ca44c38c 2023-06-29T14:41:21 Add HB_ALWAYS_INLINE With MSVC implementation as well.
Behdad Esfahbod 0a00dc0c 2023-06-29T14:17:47 [draw] Add a few unlikely's
Behdad Esfahbod 2d9c3da0 2023-06-29T13:31:11 [draw] Inline more functions
Behdad Esfahbod d26b3ade 2023-06-29T13:25:52 [draw-session] Inline small functions
Behdad Esfahbod 7aba1e6d 2023-06-29T12:44:34 [cache] Minor use a range for loop
Behdad Esfahbod afae537c 2023-06-29T12:42:44 [cache] Minor remove .init() Use constructor.
Behdad Esfahbod c49ca371 2023-06-29T12:38:45 [Glyph] Minor micro-optimize away a function call For when coords are not set.
Behdad Esfahbod 5fb7b02a 2023-06-29T12:28:43 [CompositeGlyph] Minor use range loop
Behdad Esfahbod 20b32b04 2023-06-29T12:08:11 [SimpleGlyph] Micro-optimize phantom_only
Behdad Esfahbod d1660eaf 2023-06-29T11:59:03 [subset/cff] Minor use HB_OPTIMIZE_SIZE_VAL
Behdad Esfahbod 04809ede 2023-06-29T11:58:53 [CompositeGlyph] Micro-optimize translate()
Behdad Esfahbod 229db973 2023-06-29T11:54:10 [CompositeGlyph] Minor use vector::push()
Behdad Esfahbod 75101802 2023-06-29T10:54:49 [CompositeGlyph] Micro-optimize
Behdad Esfahbod e9d74d6b 2023-06-29T10:53:52 [SimpleGlyph] Minor add an unlikely to error condition
Behdad Esfahbod 6abca413 2023-06-29T10:39:49 [path-builder] Micro-optimize No need to initialize these when has_data=false.
Behdad Esfahbod 5703c1c4 2023-06-29T10:35:23 [path-builder] Add a couple of unlikely's
Behdad Esfahbod f5eead04 2023-06-28T15:07:15 [glyf/gvar] Optimize getting variable phantom points Used when there's no HVAR table and get_h_advance(). I see some 10% speedup with a SourceSerifVariable-Roman with the HVAR table removed.
Behdad Esfahbod e42d6df5 2023-06-28T14:25:11 [glyf] Minor refactor a couple of lines and micro-optimize
Behdad Esfahbod c31471d1 2023-06-28T13:51:54 [glyf] Micro-optimize
Behdad Esfahbod 83d75d5e 2023-06-28T13:35:24 [glyf] always_inline consume_point 7% speedup in: BM_Font/draw_glyph/Roboto-Regular.ttf/hb
Behdad Esfahbod 8795cced 2023-06-28T13:29:29 Revert "[SimpleGlyph] Avoid branches in read_points" This reverts commit ba062c713e469f91f57f3c85990f721789ec7c2a.
Behdad Esfahbod ba062c71 2023-06-28T13:24:37 [SimpleGlyph] Avoid branches in read_points Calculate total bytes in read_flags and bounds-check once. This slows things down apparently, so going to revert.
Behdad Esfahbod 62f5ed46 2023-06-28T12:02:52 [subset/cff] Fix an infinite loop Fixes https://oss-fuzz.com/testcase-detail/5419002026131456
أحمد المحمودي (Ahmed El-Mahmoudy) 10b9ca54 2023-06-28T07:46:33 Fix typo: subtitution -> substitution
Behdad Esfahbod 73a82af1 2023-06-27T17:05:22 [subset/cff] Remove stale wrong code With my recent rewrite of serialize_header, this seems to work now.
Behdad Esfahbod 158eba66 2023-06-27T16:22:54 [subset/cff] Fix compiler error About variable with internal linkage with no definition.
Behdad Esfahbod b0472199 2023-06-27T16:07:54 [subset/cff1] Micro-optimize code Let compiler see whether optional argument is present.
Behdad Esfahbod 1cabb65b 2023-06-27T16:01:17 [subset/cff] Micro-optimize CFFIndex::serialize_header Unfortunately hb_array_t::begin/end are faster than its _begin/_end. As such, a range loop on array itself is faster than range loop on pipeline starting with array. Rework code to loop on the array always.
Behdad Esfahbod dfaf9cd5 2023-06-27T14:56:32 [subset/cff1] Minor optimize
Behdad Esfahbod 585c8426 2023-06-27T11:28:38 [subset/cff1] Minor micro-optimize
Behdad Esfahbod 00904503 2023-06-27T08:18:18 [config] Graduate avar2 from boring-expansion
Behdad Esfahbod 3edd6cdc 2023-06-27T06:56:00 [vector] Minor micro-optimize shrink_vector The compiler seems to understand this pattern better.
Behdad Esfahbod aed21563 2023-06-26T22:51:50 [subset/cff1] Micro-optimize
Behdad Esfahbod 40a1c08f 2023-06-26T19:03:04 [subset/cff1] Micro-optimize
Behdad Esfahbod bd3e7877 2023-06-26T18:55:39 [subset/cff1] Reuse a function
Behdad Esfahbod ffd23d3a 2023-06-26T18:54:06 [subset/cff1] Micro-optimize Charset serialization
Behdad Esfahbod 452557cd 2023-06-26T18:40:54 Replace a free with hb_free Ouch.
Behdad Esfahbod 1fc128f6 2023-06-26T18:34:27 Replace a few memset/memcpy's with hb_ equivalents
Behdad Esfahbod 2c359635 2023-06-26T18:28:11 [face-builder] Don't zero allocation We overwrite it.
Behdad Esfahbod 347b9448 2023-06-26T18:09:40 [null] Fix getting Crap(hb_bytes_t) Fixes https://oss-fuzz.com/testcase-detail/6187272924692480
Behdad Esfahbod 49c52fa9 2023-06-26T17:55:29 [cmap] Don't zero a few allocations unnecessarily
Behdad Esfahbod e4b2d9c3 2023-06-26T17:52:37 [pool] Don't clear unused memory