|
60db1427
|
2023-07-24T20:49:32
|
|
[layout] Remove unused "max-size" cruft
|
|
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
|
|
c6a01441
|
2023-07-08T16:32:15
|
|
[sanitize] Always-inline OffsetTo::sanitize()
8% speed up in sanitizing Gulzar.
|
|
f60dbd90
|
2023-07-08T16:21:24
|
|
Fix thinko
Fixes https://oss-fuzz.com/testcase-detail/4787105656864768
|
|
92448910
|
2023-07-07T22:16:24
|
|
[sanitize] Minor inline a few more short functions
|
|
d8450420
|
2023-07-07T21:56:17
|
|
[sanitize] Optimize away an overflow check when not needed
When the length argument is 16bit...
|
|
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...
|
|
7a85663c
|
2023-07-07T19:21:18
|
|
Revert "[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size"
This reverts commit 10f8556c73f3cf231c6b5a900a6a1903f9516f90.
This was, unfortunately, wrong :(.
|
|
10f8556c
|
2023-07-07T17:07:11
|
|
[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size
|
|
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...
|
|
90752cd5
|
2023-07-07T15:47:28
|
|
[type] Add HeadlessArray16Of
|
|
ec943866
|
2023-07-02T13:29:53
|
|
[OffsetTo] Micro-optimize away a check
|
|
595aa583
|
2023-06-04T15:24:36
|
|
[UnsizedArray] Minor simplify operator[]
|
|
319ea3b9
|
2023-06-04T15:23:20
|
|
[UnsizedArrayOf] Simplify operator[]
No need to check for overflow. Caller is responsible for correct
access.
|
|
bf0a08c9
|
2023-06-04T12:54:35
|
|
[cff1] Hygiene
|
|
004cdc10
|
2023-01-07T14:27:15
|
|
[open-type] More tweaks to fixed types
Add set_int().
|
|
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.
|
|
80e68f09
|
2022-12-19T19:15:44
|
|
[VarC] Change rotation/skew representation
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/77
|
|
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
|
|
51a17201
|
2022-12-16T12:28:30
|
|
[open-type] In to_float() take offset as float
|
|
f252cf80
|
2022-12-16T12:03:51
|
|
[open-type] Allow passing an offset to to_float()
|
|
251f9f62
|
2022-12-16T11:29:51
|
|
[open-type] Add VarIdx::add()
|
|
bf2ae3f0
|
2022-12-16T11:26:24
|
|
[open-type] Add static_assert for NO_VARIATION
|
|
575d9940
|
2022-10-13T13:12:26
|
|
[glyf] Flesh out VarCompositeGlyph
|
|
8b533763
|
2022-12-03T15:58:12
|
|
Use hb_len() instead of .len()
|
|
5fd2f255
|
2022-12-01T15:18:59
|
|
[open-type] Don't memset 0 in serialize for ArrayOf family
Not necessary.
|
|
7129b794
|
2022-11-29T15:33:07
|
|
[open-type] Add faster range-based loop to array types
|
|
a0bde1e1
|
2022-11-16T21:27:12
|
|
[open-type] Remove (Sorted)ArrayOf.sub_array()
|
|
c7d57dcf
|
2022-11-16T21:21:31
|
|
[vector/array] Simplify qsort()
|
|
5769d422
|
2022-10-13T12:12:24
|
|
[type] Add HBFixed template
|
|
8c29dcae
|
2022-10-13T12:04:32
|
|
s/HBFixed/F16DOT16/g
|
|
b57ea3b0
|
2022-08-05T14:29:27
|
|
Revert "[iter] Use && in uses of is_source_of"
This reverts commit ccbba667a9bdc096f0053d5e3ee951a8b6298e8a.
|
|
ccbba667
|
2022-08-05T11:51:51
|
|
[iter] Use && in uses of is_source_of
|
|
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.
|
|
f0707e23
|
2022-07-17T16:47:16
|
|
[atomic] Add compiler memory_r_barrier
https://github.com/harfbuzz/harfbuzz/issues/3728
|
|
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
|
|
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.
|
|
9ef9fc01
|
2022-07-11T13:29:23
|
|
[>64k:layout] Templatize GSUBGPOSFormat1
|
|
f6c2aaee
|
2022-07-11T13:06:48
|
|
[>64k:layout] Add List16OfOffsetTo
|
|
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.
|
|
2c672617
|
2022-07-06T12:26:16
|
|
[open-type] Add HBGlyph24
|
|
486555c6
|
2022-07-05T17:12:59
|
|
[open-type] Add Array24Of<> and SortedArray24Of<>
|
|
c657c4e1
|
2022-05-10T10:00:06
|
|
[meta] fix type traits on gcc 4.9 #3526
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
|
|
7a078c39
|
2021-11-02T00:44:51
|
|
[meta] Use std::conditional instead of hb_conditional()
|
|
943921cf
|
2021-11-02T00:26:46
|
|
[meta] Use more std type_traits
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
be42800f
|
2021-11-02T00:04:18
|
|
[meta] Use std::is_trivially_... instead of internal copies
|
|
14a2df7b
|
2021-09-19T23:06:09
|
|
Add stub HBUINT15
|
|
c852b868
|
2021-09-19T16:30:12
|
|
Rename HBGlyphID to HBGlyphID16
|
|
f0a1892f
|
2021-07-28T17:36:22
|
|
[serialize] Remove unnecessary pointer indirection
|
|
03cd9c5c
|
2021-07-22T11:27:33
|
|
Align lfind() API to match bfind()
|
|
29c9833e
|
2021-07-09T11:58:36
|
|
Remove Offset::serialize()
Finishing https://github.com/harfbuzz/harfbuzz/pull/2355
|
|
0da9158f
|
2021-06-29T14:23:37
|
|
[subset] Remove OffsetTo::serialize().
Convert remaining uses of it to serialize_serialize() which correctly uses the object packer.
|
|
35458b6b
|
2021-06-11T13:14:51
|
|
[subset] Add serialize_serialize to OffsetTo.
Similar to serialize_subset() this will serialize the new object and then link it to the offset.
|
|
70110f6a
|
2021-03-31T17:04:02
|
|
Modify OffsetTo<>::sanitize() overflow check
The code in question was introduced in 70eb2ff682.
Rewrite it to not call sanitizer check_range() as we want to use
check_range() for byte accounting.
Part of https://github.com/harfbuzz/harfbuzz/pull/2923
|
|
4dba749d
|
2021-03-31T16:09:39
|
|
Add SortedArray{16,32}Of<>
|
|
5639e253
|
2021-03-31T16:04:43
|
|
Add Array16Of<>
|
|
2520a82d
|
2021-03-31T15:34:26
|
|
s/LArrayOf/Array32Of/g
|
|
5efe3609
|
2021-03-31T15:33:22
|
|
Rename (Unsized)OffsetListOf
|
|
6c4e0491
|
2021-03-31T15:31:32
|
|
s/OffsetArrayOf/Array16OfOffset16To/g
|
|
1fc6b69a
|
2021-03-31T15:30:35
|
|
s/UnsizedOffsetArrayOf/UnsizedArray16OfOffsetTo/g
|
|
2a54c9f7
|
2021-03-31T15:26:42
|
|
.
|
|
9b4b5849
|
2021-03-31T13:27:21
|
|
Fixup for recent OffsetTo<> changes
|
|
ad28f973
|
2021-03-31T12:49:14
|
|
Rename offset types to be explicit about their size
Add Offset16To<>, Offset24To<>, and Offset32To<> for most use-cases.
|
|
9ffc46b8
|
2021-03-31T11:26:18
|
|
Add VarIdx
|
|
2179281c
|
2021-03-31T11:20:21
|
|
Add Offset24
|
|
23976893
|
2021-03-29T17:34:23
|
|
Remove hb_success_t
Was not rolled-out yet. So just expand.
|
|
7a2eda78
|
2021-03-29T17:32:29
|
|
Move code around
|
|
bcb57dcc
|
2021-03-29T17:31:09
|
|
[sanitize] Add short-circuit to ArrayOfM1
Like the sibling ArrayOf types.
|
|
b14475d2
|
2021-03-18T10:51:26
|
|
[subset] further changes to serializer error handling.
- Rename enum type and enum members.
- in_errors() now returns true for any error having been set. hb-subset now looks for offset overflow only errors to divert to repacker.
- Added INT_OVERFLOW and ARRAY_OVERFLOW enum values.
|
|
73ed59f7
|
2021-03-17T15:53:10
|
|
[subset] store errors in the serializer as a flag set.
Make check_assign/check_equal specify the type of error to set.
|
|
486da35c
|
2021-02-23T13:58:14
|
|
m Add comments to IntType cast out operator
Okay, bots seem to be happy. Merging.
|
|
d6bd00a4
|
2021-02-22T22:42:50
|
|
Revert back IntType out cast to signed/unsigned
Previous commit didn't fix the bots. Putting it back now that I
understand why I initially did the "Wide" casts. But only doing
it for out-cast this time. This causes "narrowing" warnings
whenever we are converting signed/unsigned to smaller HBUINT16
etc. But those are valuable warnings. We should address those
separately instead of ignoring.
Maybe we should start using uint16_t more liberally in the
internal subsetter function signatures then.
|
|
09836013
|
2021-02-22T22:33:17
|
|
Add back wider cast to IntType
My local clang12 is fine, but many bots are not:
../src/hb-ot-cff1-table.hh: In instantiation of ‘bool CFF::Charset1_2<TYPE>::sanitize(hb_sanitize_context_t*, unsigned int) const [with TYPE = OT::IntType<unsigned char>]’:
../src/hb-ot-cff1-table.hh:554:13: required from here
../src/hb-ot-cff1-table.hh:377:60: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (unlikely (!ranges[i].sanitize (c) || (num_glyphs < ranges[i].nLeft + 1)))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
Enabling the extra cast operator mentioned in previous commit to see if
that fixes this case.
Again, I'd be happy to say "use 1u instead of 1" if this was universally
erred on. But since some compilers happily compile this while others
err, it would be a huge headache. Let's see...
https://github.com/harfbuzz/harfbuzz/pull/2875
|
|
567cedcc
|
2021-02-22T22:09:15
|
|
Narrow down cast operators on IntType
Say for USHORT, we were implementing casts from and to unsigned.
With this change, we cast from and to uint16_t only. This allows
compiler more opportunities to catch possible narrowing issues in
the code.
It needed a couple of fixes in the codebase though, because
previously, if a USHORT was participating in arithmetic with signed
numbers, eg. "u + 1", the result would have been unsigned. With
this change, it would be signed. The correct fix is to update the
code to read "u + 1u".
That said, I think about conditionally adding back the cast
out to signed/unsigned, to facilitate better type deduction.
But I couldn't think of a real situation where that would help
with anything. So I didn't add. Here's what it was:
template <typename Type2 = hb_conditional<hb_is_signed (Type), signed, unsigned>,
hb_enable_if (sizeof (Type) < sizeof (Type2))>
operator hb_type_identity_t<Type2> () const { return v; }
https://github.com/harfbuzz/harfbuzz/pull/2875
|
|
cc16b26e
|
2021-02-22T17:55:47
|
|
[constexpr] IntType
See https://github.com/harfbuzz/harfbuzz/pull/2875
|
|
8b2f9adf
|
2021-02-22T17:42:24
|
|
m Simplify Tag operator char*
|
|
e5b7bc42
|
2020-06-29T01:24:02
|
|
m Add default value to BEInt<> Size template parameter
|
|
98374ceb
|
2021-02-05T13:40:10
|
|
Conditionalize IntType::cmp() so it never fails to compile
Useful with lfind() since that calls hb_equal() which SFINAEs which
cmp() to use.
|
|
25c0a792
|
2020-12-10T14:29:47
|
|
Remove unused+wrong UnsizedArrayOf<> operators
Said compiler is wrong to err since they are unused. But yeah, they
didn't make sense and were copy/paste leftover.
Fixes https://github.com/harfbuzz/harfbuzz/issues/2763
|
|
7e3edfa4
|
2020-07-18T19:03:36
|
|
minor
|
|
08d57d9e
|
2020-06-28T13:13:25
|
|
Add hb_array_t::lfind
|
|
385d64ee
|
2020-05-07T09:59:01
|
|
Add a not discardable bool type, hb_success_t
|
|
07acd1a0
|
2020-03-08T23:39:24
|
|
[subset] Rename src_base args to base to match sanitize methods
So it will become easier to follow that serialize methods signatures should
match with their sanitize methods counterparts.
|
|
188a0a47
|
2020-03-07T11:02:36
|
|
removed default base; replaced w/ bias if required
|
|
4aa354be
|
2020-02-20T05:03:15
|
|
chain second OffsetTo::serialize_copy() to first
|
|
4ca8e0d9
|
2020-02-19T12:52:18
|
|
re-implement Tail; rewrote name table with it
|
|
82afc758
|
2020-02-04T13:24:37
|
|
[subset] GPOS4 MarkBase subsetting support
|
|
b1dc676e
|
2019-12-10T11:41:24
|
|
[algs] Reduce one more bsearch() impl
Ouch, there were three more left. Down one. Two to go.
|
|
0558413f
|
2019-10-01T13:49:55
|
|
Minor, tweak spaces
|
|
d512087e
|
2019-09-14T10:36:29
|
|
Rename GlyphID to HBGlyphID
Avoid collision with macOS's ATSUnicodeTypes.h GlyphID
|
|
229ef1d2
|
2019-09-10T10:31:07
|
|
Rename Fixed to HBFixed
Fixes(!!) https://github.com/harfbuzz/harfbuzz/issues/1966
|
|
0e294c45
|
2019-09-06T16:54:27
|
|
Rename VAR to HB_VAR_ARRAY
|
|
dc2c9aa0
|
2019-08-28T15:05:49
|
|
Rename
|
|
42d887bd
|
2019-08-28T14:47:14
|
|
Beef up HeadlessArrayOf<>
Should be merged with ArrayOf...
https://github.com/harfbuzz/harfbuzz/issues/1937
|
|
3ca809e3
|
2019-08-28T13:49:35
|
|
Add ArrayOf::pop()
|
|
307bd6d7
|
2019-08-28T13:49:17
|
|
Add arithmetic operators to IntType<>
|
|
062cad5e
|
2019-08-28T13:33:08
|
|
Add ArrayOf::serialize_append
|
|
a0b4ac4d
|
2019-08-24T17:57:14
|
|
Turn 8 spaces to tab across the project
According to the current code style of the project
|
|
aab8e084
|
2019-07-26T02:19:22
|
|
minor spacing fix (#1869)
|