src/hb-open-type.hh

Branch


Log

Author Commit Date CI Message
Behdad Esfahbod ebdeb2e3 2025-09-16T01:09:46 [tuplevalues] Speed up encoding
Behdad Esfahbod 82370913 2025-09-15T20:16:52 [vector] Simplify resize()
Behdad Esfahbod e310f811 2025-09-15T00:58:07 [instancer/gvar] Speed up hash lookup-set
Behdad Esfahbod 35212ba3 2025-09-14T17:46:13 [gvar] Change a storage type No functional change.
Behdad Esfahbod 2319d763 2025-09-13T16:21:34 [TupleValues] Micro-optimize encoding Also, a check for 32bit values in the word-encoding function was missing. Ouch.
Behdad Esfahbod 0ce2b74f 2025-07-19T20:45:50 [gvar] Don't store deltas not needed For phantoms-only case. 30% speedup on v-advances func's slowest codepath (using phantom-points).
Behdad Esfahbod c124252d 2025-05-31T16:32:58 [algs] Add support for little-endian int types As well as 64bit-int, and float types. Add Align type.
Behdad Esfahbod f3a1ec29 2025-02-07T19:52:08 [open-type] Minor float math
Behdad Esfahbod c6bbc4ed 2025-01-22T05:33:33 [open-type] Fix NumType
Behdad Esfahbod caf04058 2025-01-22T04:37:27 [hvgl] Fix NumType float conversion
Behdad Esfahbod fe964860 2025-01-21T21:41:51 [hvgl] Fix Align<>::get_size()
Behdad Esfahbod e9c531dc 2025-01-20T18:02:38 [hvgl] Simplify Align<>
Behdad Esfahbod a6ba9603 2025-01-20T18:00:23 [hvgl] Move Align to proper place
Behdad Esfahbod 622f242e 2025-02-02T21:02:31 [open-type/algs] Add fixed-endian floating point number types
Behdad Esfahbod d0710061 2025-01-17T19:32:34 [open-type/algs] Rename Int to Num in some types In anticipation of float types.
Behdad Esfahbod ce131d65 2025-01-17T19:06:48 [open-type] Add little-endian integers
Behdad Esfahbod d1826ca6 2025-03-02T15:45:35 [TupleValues] Fix regression Introduced in 043980a60eb2fe93dd65b8c2f5eaa021fd8653f2
Behdad Esfahbod d9628a56 2025-03-02T12:55:23 [MultiVarData] Micro-optimize
Behdad Esfahbod 4be765c0 2025-02-27T02:26:08 Fix config build
Behdad Esfahbod 4a43373a 2025-02-26T17:24:28 [MultiVarData] Unroll another loop
Behdad Esfahbod a058a1f2 2025-02-24T21:53:17 [TupleValues] Unroll a loop
Behdad Esfahbod 6fe55030 2025-02-24T20:57:30 [TupleValues] Don't overshadow end() method
Behdad Esfahbod 2099db37 2025-02-24T15:13:08 [TupleValues] Optimize decoding
Behdad Esfahbod 043980a6 2025-02-24T10:58:03 [TupleValues] Micro-optimize
Behdad Esfahbod 1ba90720 2025-02-23T21:34:54 [VARC] Speed up MultiVarData::get_delta
Behdad Esfahbod 01f02f55 2025-02-18T20:28:48 [COLR] Optimize NoVariation codepath
Behdad Esfahbod f5e50890 2025-02-02T11:40:27 [open-type] Another tweak to cmp() Again, unlikely that compiler cares.
Behdad Esfahbod c68df817 2025-02-02T11:33:42 [open-type] Minor tweak to cmp() Remove codepath that was never taken.
Behdad Esfahbod 70ca19df 2024-09-24T08:42:44 Use hb_barrier() instead of longer name No functional change.
Behdad Esfahbod 2ba0b9ee 2024-08-29T11:41:28 Turn some byte data into unsigned char, from char Fixes https://github.com/harfbuzz/harfbuzz/issues/4844
Behdad Esfahbod 16c196e0 2024-08-22T15:45:41 Fix warnings with -fstrict-flex-arrays=2 Unfortunatley we cannot set it to 2 in hb.hh; but fix the warning and add it with default value of 1 anyway. Fixes https://github.com/harfbuzz/harfbuzz/pull/4836
Behdad Esfahbod 6129c726 2024-04-22T14:52:58 [varc] Use Condition instead of ConditionSet With more Condition formats. https://github.com/harfbuzz/boring-expansion-spec/commit/df7dcc4618b9dc003740d25c53afe30a8fc03fe2 https://github.com/harfbuzz/boring-expansion-spec/issues/147
Behdad Esfahbod 3fda07b4 2024-04-15T13:52:34 Replace an abort with assert(false)
Behdad Esfahbod 2e533634 2024-04-15T13:49:07 [TupleValues] Add a likely I can actually measure a couple percents speedup.
Behdad Esfahbod 6af0c519 2024-03-23T15:22:40 [varc] Remove unused method
Behdad Esfahbod 9489c856 2024-03-23T14:15:03 [varc] Simplify iterator
Behdad Esfahbod 8961b1c5 2024-03-23T13:24:37 [varc] Add __forward__ to the iterator
Behdad Esfahbod 731f7815 2024-03-23T13:10:12 [varc] Improve iterator
Behdad Esfahbod 84a755bf 2024-03-23T12:35:38 [TupleValues] Minor add an enum
Behdad Esfahbod eaa1fb14 2024-03-23T11:39:58 [varc] Use an iterator to unpack TupleValues
Behdad Esfahbod 49c5ed38 2024-03-23T10:14:11 [varc] Remove one vector allocation
Behdad Esfahbod 9c7d871b 2024-03-23T09:55:30 [varc] Fix return type
Behdad Esfahbod cf3ce69f 2024-03-17T13:57:26 [TupleValues] Add a pre-alloc
Behdad Esfahbod 57a18ac7 2024-03-16T14:28:01 [varc] Error check
Behdad Esfahbod 72c9deb5 2024-03-16T13:50:31 [varc] Fixups Seems to work now!
Behdad Esfahbod 320dcede 2024-03-16T09:18:58 [varc] Reading VarComponent transform components
Behdad Esfahbod f77aa8be 2024-03-16T08:48:51 [varc] Add TupleList
Behdad Esfahbod 3b8e7d3b 2024-03-15T21:50:53 [HBUINT32VAR] Change return type
Behdad Esfahbod 7cf84272 2024-03-15T20:45:31 [varc] Fix sanitize for HBUINT32VAR
Behdad Esfahbod a9776a3d 2024-03-15T12:16:15 [TupleValues] Rename delta to value
Behdad Esfahbod 763f8390 2024-03-15T11:45:39 [TupleValues] Move compile/decompile here
Behdad Esfahbod ef04b5c2 2024-02-06T14:58:05 Try fixing MSVC builds
Behdad Esfahbod fa9dc530 2024-02-06T14:44:56 Move CFF Index types to open-type https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md#cff2indexof
Behdad Esfahbod e339fed7 2024-02-06T14:10:07 [open-type] Add HBUINT32VAR https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md#uint32var
Qunxin Liu cfbb6a68 2024-03-14T17:33:34 [subset] support BASE table subsetting (#4618) * [subset] support BASE table * [subset] add tests for BASE table subsetting
Behdad Esfahbod 3a9262cc 2023-11-04T12:52:46 [sanitize] More hb_barrier() annotations
Behdad Esfahbod 38546acd 2023-10-31T14:56:09 [typed-offset] Fix sanitize()
Behdad Esfahbod b37cc61d 2023-10-31T14:26:42 Add base types to OffsetTo<> Unused so far.
Behdad Esfahbod 60db1427 2023-07-24T20:49:32 [layout] Remove unused "max-size" cruft
Behdad Esfahbod e322949b 2023-07-24T20:28:37 [ArrayOf] Remove fast-path for offset to max-sized objects Fixes timeout https://oss-fuzz.com/testcase-detail/6153196517851136
Behdad Esfahbod c6a01441 2023-07-08T16:32:15 [sanitize] Always-inline OffsetTo::sanitize() 8% speed up in sanitizing Gulzar.
Behdad Esfahbod f60dbd90 2023-07-08T16:21:24 Fix thinko Fixes https://oss-fuzz.com/testcase-detail/4787105656864768
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 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 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 ec943866 2023-07-02T13:29:53 [OffsetTo] Micro-optimize away a check
Behdad Esfahbod 595aa583 2023-06-04T15:24:36 [UnsizedArray] Minor simplify operator[]
Behdad Esfahbod 319ea3b9 2023-06-04T15:23:20 [UnsizedArrayOf] Simplify operator[] No need to check for overflow. Caller is responsible for correct access.
Behdad Esfahbod bf0a08c9 2023-06-04T12:54:35 [cff1] Hygiene
Behdad Esfahbod 004cdc10 2023-01-07T14:27:15 [open-type] More tweaks to fixed types Add set_int().
Behdad Esfahbod c8486b63 2023-01-07T14:15:17 [open-type] Add to_int to fixed types To make sure we don't accidentally forget to_float(). As we did recently in COLRv1 code.
Behdad Esfahbod 80e68f09 2022-12-19T19:15:44 [VarC] Change rotation/skew representation Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/77
Behdad Esfahbod 03a16856 2022-12-19T17:11:34 [VarC] Change representation of scale from 4.12 to 6.10 Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/76
Behdad Esfahbod 51a17201 2022-12-16T12:28:30 [open-type] In to_float() take offset as float
Behdad Esfahbod f252cf80 2022-12-16T12:03:51 [open-type] Allow passing an offset to to_float()
Behdad Esfahbod 251f9f62 2022-12-16T11:29:51 [open-type] Add VarIdx::add()
Behdad Esfahbod bf2ae3f0 2022-12-16T11:26:24 [open-type] Add static_assert for NO_VARIATION
Behdad Esfahbod 575d9940 2022-10-13T13:12:26 [glyf] Flesh out VarCompositeGlyph
Behdad Esfahbod 8b533763 2022-12-03T15:58:12 Use hb_len() instead of .len()
Behdad Esfahbod 5fd2f255 2022-12-01T15:18:59 [open-type] Don't memset 0 in serialize for ArrayOf family Not necessary.
Behdad Esfahbod 7129b794 2022-11-29T15:33:07 [open-type] Add faster range-based loop to array types
Behdad Esfahbod a0bde1e1 2022-11-16T21:27:12 [open-type] Remove (Sorted)ArrayOf.sub_array()
Behdad Esfahbod c7d57dcf 2022-11-16T21:21:31 [vector/array] Simplify qsort()
Behdad Esfahbod 5769d422 2022-10-13T12:12:24 [type] Add HBFixed template
Behdad Esfahbod 8c29dcae 2022-10-13T12:04:32 s/HBFixed/F16DOT16/g
Behdad Esfahbod b57ea3b0 2022-08-05T14:29:27 Revert "[iter] Use && in uses of is_source_of" This reverts commit ccbba667a9bdc096f0053d5e3ee951a8b6298e8a.
Behdad Esfahbod ccbba667 2022-08-05T11:51:51 [iter] Use && in uses of is_source_of
Behdad Esfahbod 91c60802 2022-07-18T22:24:28 [open-type] Fix overflow check Without the cast, the compiler is within its rights to reason that overflow didn't happen and optimize away the check, as clang was.
Behdad Esfahbod f0707e23 2022-07-17T16:47:16 [atomic] Add compiler memory_r_barrier https://github.com/harfbuzz/harfbuzz/issues/3728
Behdad Esfahbod f3151b65 2022-07-17T16:19:28 [ArrayOf family] Use memory barrier before accessing array Without it, the compiler was reordering and batching the read of array length and array[0] if the 0'th member was accessed constantly and function was inlined. This felt safe to the compiler because HB_VAR_ARRAY is 1, but could be unsafe actually. The memory barrier disallows that. This was found by afl/honggfuzz address sanitizers. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49187
Behdad Esfahbod 9843f076 2022-07-15T16:03:55 [OffsetTo] Try catching nullable offsets to unbounded types Doesn't catch all cases; if type is not fully defined at OffsetTo time, we can't know. Fixes https://github.com/harfbuzz/harfbuzz/issues/1300 to the best we can do.
Behdad Esfahbod 9ef9fc01 2022-07-11T13:29:23 [>64k:layout] Templatize GSUBGPOSFormat1
Behdad Esfahbod f6c2aaee 2022-07-11T13:06:48 [>64k:layout] Add List16OfOffsetTo
Behdad Esfahbod 7c4e9080 2022-07-11T14:01:52 [sanitize] Minor trace format fixup This likely() is unlikely to make a difference, and obscures the return_trace() message by writing out "something" instead of the true/false value.
Behdad Esfahbod 2c672617 2022-07-06T12:26:16 [open-type] Add HBGlyph24
Behdad Esfahbod 486555c6 2022-07-05T17:12:59 [open-type] Add Array24Of<> and SortedArray24Of<>