|
7989702a
|
2023-08-06T14:17:50
|
|
Audit and fix up serialize_subset uses
Fixes https://github.com/harfbuzz/harfbuzz/issues/4362
|
|
730f579f
|
2023-07-18T15:09:36
|
|
[instancer] store float value rather than F2DOT14 int value in axes_location map
|
|
6c25c752
|
2023-07-17T13:47:38
|
|
[instancer] use renormalized values when instantiating Condition table
|
|
a5628848
|
2023-07-15T13:59:10
|
|
[subset] Speed up a couple of set iteration loops
Need to speed up set::next_range() for the second one to have
any effect.
|
|
87f1b80d
|
2023-06-25T23:14:01
|
|
[bimap] Write with a map & vector combo
Faster for getting keys.
Speeds up 10% in:
BM_subset/subset_glyphs/RobotoFlex-Variable.ttf/retaingids/10
|
|
ec0fbf8f
|
2023-06-23T16:13:13
|
|
[subset/ClassDef] Micro-optimize use_class_zero calc
Probably never matters.
|
|
67b16247
|
2023-06-07T16:15:48
|
|
[set] Simplify a few set iterations as range loop
|
|
82741304
|
2023-06-04T09:41:41
|
|
[subset] start_embed never returns nullptr
Remove checks.
|
|
ca27925d
|
2023-06-03T16:18:15
|
|
Use hb_codepoint_pair_t in more places
|
|
efc77dc6
|
2023-05-04T10:59:09
|
|
[instancer] update code for collecting FeatureVariationRecord
|
|
4ad443d5
|
2023-05-08T10:14:43
|
|
[Coverage/ClassDef] Don't call qsort if sorted already
|
|
8df5cdbc
|
2023-05-07T15:49:50
|
|
[Coverage/ClassDef] Handle glyphID overflow in serialize
|
|
86658df5
|
2023-05-05T16:10:46
|
|
[ClassDef] Fix a fuzzer issue
Don't qsort an array that failed to allocate!
Fixes https://oss-fuzz.com/testcase-detail/6512559172485120
|
|
1be39729
|
2023-05-04T13:18:34
|
|
[subset] Support unordered glyphlist in Coverage/ClassDef serialize
|
|
b9b85da3
|
2023-04-27T11:17:24
|
|
[instancer] no need to create hb_font_t object when fetching delta from varstore
|
|
f6803b06
|
2023-04-25T14:46:44
|
|
[VarRegionAxis] Micro-optimize
peak==0 is common.
|
|
f91929d6
|
2023-04-25T14:42:00
|
|
Minor return floats instead of doubles from function
Not that any compiler complained...
|
|
2175f5d0
|
2023-04-24T21:13:18
|
|
[subset] Fix inefficient ItemVariationStore subsetting w/ retain_gids.
ItemVariationStore is relying on the assumption that the inner_map is populated for all output glyphs, this is not true for subsetting operations with retain gids enabled. Fixes fuzzer timeout: https://oss-fuzz.com/testcase-detail/4575222591520768.
|
|
125450d2
|
2023-03-13T15:43:29
|
|
[subset] collect name_ids for FeratureParams
|
|
0f33ea8c
|
2023-01-27T11:26:57
|
|
[subset/COLR] Copy VarStore
Fixes https://github.com/harfbuzz/harfbuzz/issues/4085
|
|
2fede3ef
|
2023-01-26T12:23:12
|
|
[layout] Fix a return_trace
|
|
be8a87c4
|
2023-01-21T15:00:41
|
|
Move TRACE_DISPATCH after may_recurse()
Such that we don't get memory access issues if DEBUG_SANITIZE is
on and may_recurse() returns false.
|
|
65d3db37
|
2023-01-11T12:36:54
|
|
[subset-plan] Simplify user_axes_location allocation
|
|
60418fcb
|
2023-01-11T12:33:25
|
|
[subset-plan] Simplify axes_index_map allocation
|
|
b2007abf
|
2023-01-11T11:27:22
|
|
[subset-plan] Simplify glyph_map_gsub allocation
|
|
9e24873c
|
2023-01-11T11:12:07
|
|
[subset-plan] Simplify gsub/gpos_feature_substitutes_map allocation
|
|
01208c7c
|
2023-01-11T11:10:28
|
|
[subset-plan] Simplify gsub/gpos_feature_record_cond_idx_map allocation
|
|
06039db0
|
2023-01-11T11:07:31
|
|
[subset-plan] Simplify gsub_langsys and gpos_langsys allocation
|
|
1a00ab69
|
2023-01-11T10:56:16
|
|
[subset-plan] Simplify gsub_lookups and gpos_lookups allocation
|
|
1a716bad
|
2023-01-11T10:51:48
|
|
[subset-plan] Simplify gsub_features and gpos_features allocation
|
|
4de66eec
|
2023-01-11T10:40:54
|
|
[subset-plan] Simplify layout_scripts allocation
|
|
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.
|
|
ae208963
|
2022-12-26T12:30:39
|
|
Add hb-limits.hh
|
|
300d82ce
|
2022-12-13T10:48:56
|
|
Fix compiler warning
|
|
9a3f0be2
|
2022-12-11T13:40:53
|
|
[COLR] Apply variations in get_extent
|
|
22b0390e
|
2022-12-05T09:43:36
|
|
Revert "[VarData] Don't clear memory we are going to fill in completely"
This reverts commit e28e2dad03a453c5e5c4c5a9d6fd276182c5f80b.
This made fuzzer unhappy. I'm not sure how.
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54044
|
|
e28e2dad
|
2022-12-03T15:56:43
|
|
[VarData] Don't clear memory we are going to fill in completely
|
|
0e13b4ab
|
2022-12-03T15:50:24
|
|
[VarData] Optimize main loop slightly
|
|
ad17c0ac
|
2022-12-03T14:56:57
|
|
[VarData] Whitespace
|
|
e7eb445d
|
2022-12-03T14:56:00
|
|
[VarData] Optimize longWord calculation
|
|
f2c980be
|
2022-12-03T14:49:38
|
|
[VarData] Optimize wordCount calculation
6% speedup in RobotoFlex-Variable/900 benchmark.
|
|
3641b0e0
|
2022-12-03T14:26:21
|
|
[VarData] Optimize serialize()
|
|
e155f123
|
2022-12-03T14:14:39
|
|
[VarData] Minor save a variable
|
|
5596a730
|
2022-12-03T13:33:48
|
|
[layout] Speed up ClassDefFormat2 intersects
|
|
85e7263b
|
2022-12-03T13:28:02
|
|
[VariationStore] Minor access array directly
|
|
58e9df13
|
2022-12-03T13:04:00
|
|
[Device] Serialize VariationDevice zerocopy
|
|
44a5de3a
|
2022-12-03T12:50:32
|
|
[Device] Save a snap/revert
|
|
93328ced
|
2022-12-03T12:49:26
|
|
[Device] Save a map get()
|
|
02bc4dd6
|
2022-12-03T10:07:16
|
|
Use hb_enumerate instead of hand-coding
|
|
57808609
|
2022-12-01T14:03:56
|
|
[VarData] Move an unlikely
|
|
8805a866
|
2022-11-30T17:15:00
|
|
[ClassDef2] Write a few loops as range-based for
|
|
2fecf2aa
|
2022-11-29T21:25:01
|
|
[ClassDef] Minor rename
|
|
8f632ca8
|
2022-11-29T21:23:35
|
|
[ClassDef] Write another loop as range for
|
|
87b12aee
|
2022-11-29T21:18:48
|
|
[ClassDef] Write a couple loops as range for
|
|
ccd40c84
|
2022-11-29T21:14:44
|
|
[ClassDef] Optimize intersected_class_glyphs
|
|
44c585a6
|
2022-11-29T20:51:58
|
|
[ClassDef] Fix disabled codeblock
|
|
9b7617d4
|
2022-11-29T20:29:58
|
|
[ClassDef2] Use a faster algorithm in subset()
Speedup across the board; up to 40% for MPlus1 at small sizes.
|
|
ae5e6d56
|
2022-11-29T15:48:38
|
|
[ClassDef2] Micro-optimize
|
|
dc823340
|
2022-11-29T15:26:55
|
|
Remove a couple of unneeded .iter() invocations
|
|
d2a2670e
|
2022-11-28T19:42:27
|
|
[iter] Simplify has() interface implementations
|
|
06e2147a
|
2022-11-24T14:56:04
|
|
More call set->next() directly
|
|
196c9db0
|
2022-11-24T14:51:52
|
|
Call ->next() directly
|
|
59c45f6d
|
2022-11-22T12:54:50
|
|
Use hb_memcpy instead of memcpy consistently
|
|
a0bde1e1
|
2022-11-16T21:27:12
|
|
[open-type] Remove (Sorted)ArrayOf.sub_array()
|
|
83769b9c
|
2022-10-21T22:37:32
|
|
[subset] add comment for why we retain empty lookups.
|
|
70e2de2b
|
2022-10-21T22:33:17
|
|
[subset] Always output Lookup's even if they are empty.
The rest of layout subsetting depends on lookup indices being consistent with those computed during planning. So if an empty lookup is discarded during the subset phase it will invalidate all subsequent lookup indices. Generally we shouldn't end up with an empty lookup as we pre-prune them during the planning phase, but it can happen in rare cases such as when a subtable is considered degenerate (eg. #3853)
|
|
c813f842
|
2022-10-20T19:45:23
|
|
Make build work for arm-none-eabi
|
|
b706c6f7
|
2022-09-12T13:58:55
|
|
[instance] update FeatureList with variations
|
|
8f3a7017
|
2022-09-09T15:00:37
|
|
[instance] support FeatureVariations table
|
|
f4813e3b
|
2022-09-09T10:34:09
|
|
[instance] update collect_lookups/prune_features()/closure_features() with variations
Some features will be substituted with variations, so we do not collect
lookups from the original feature tables.
|
|
64e2f2fc
|
2022-09-09T09:36:19
|
|
[instance] store active featurevariation record/condition idxes in the plan
|
|
9ab6605f
|
2022-08-02T09:54:29
|
|
[instance] update GDEF table
|
|
b72995ff
|
2022-08-01T14:48:01
|
|
[instance] GDEF table: collect both varidxes and deltas
|
|
e03043bd
|
2022-08-01T11:37:47
|
|
[subset] don't let VariationStore subset() produce inner_maps
Make it a subset-planning object so VariationStore can subset to
specified inner_maps.
Also add a layout_variation_idx_delta_map in subset_plan
|
|
7fde6ab0
|
2022-08-05T13:33:22
|
|
fuzzer fix: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49790
|
|
c67c1b74
|
2022-08-04T11:42:22
|
|
VarStore: simplify again
|
|
d831e935
|
2022-08-04T10:15:21
|
|
bug fix in VarData get_delta ()
when LONG_WORDS flag is set, item row is not computed correctly
lcursor should be interpreted as INT32
|
|
3da50c50
|
2022-07-29T11:40:33
|
|
Remove unused const
|
|
3f7a74ff
|
2022-07-19T21:50:13
|
|
[repacker] WIP extension promotion implementation.
|
|
4cb83967
|
2022-07-23T10:59:42
|
|
[subset/ClassDefFormat2] Fix timeout
Fixes https://oss-fuzz.com/testcase-detail/5417800474165248
|
|
f94a3ba1
|
2022-07-23T10:36:08
|
|
[varStore] Better protect against HB_NO_VAR builds
|
|
5a9c7930
|
2022-07-22T21:33:15
|
|
Add HB_NO_BEYOND_64K
|
|
7cdde6a2
|
2022-07-21T17:17:59
|
|
[ClassDef] Write a loop as range for
|
|
00dfbbce
|
2022-07-21T11:39:32
|
|
[Coverage] Rename and templatize intersected_coverage_glyphs
|
|
8d923363
|
2022-07-20T12:08:18
|
|
[layout] Reduce number of closure rounds
|
|
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
|
|
1327d8e3
|
2022-07-15T16:03:38
|
|
[layout-common] Reshuffle code so Feature is defined before it's used
|
|
c1e280ea
|
2022-07-13T22:43:38
|
|
[reorg] Move Coverage, RangeRecord into new namespace layout.
|
|
df7eebf4
|
2022-07-11T14:14:55
|
|
[>64k:layout] Fix layout of RangeRecord
https://github.com/be-fonts/boring-expansion-spec/issues/30
|
|
9ef9fc01
|
2022-07-11T13:29:23
|
|
[>64k:layout] Templatize GSUBGPOSFormat1
|
|
5fd0a3f0
|
2022-07-11T13:10:04
|
|
[>64k:layout] Templatize GSUBGPOSFormat1
|
|
ca5c8a64
|
2022-07-06T13:02:49
|
|
[>64k:layout:Coverage] Implement format 3/4
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/30
|
|
25de6fb4
|
2022-07-06T12:52:03
|
|
[>64k:layout:ClassDef] Implement format 3/4
This implements part of https://github.com/be-fonts/boring-expansion-spec/issues/30
|
|
9286526f
|
2022-07-06T12:26:58
|
|
[>64k:layout] Templatize Coverage & ClassDef
Have not added new formats yet.
|
|
e8cce9d1
|
2022-07-05T14:05:43
|
|
[>64k:layout] Add SmallTypes & MediumTypes
|
|
8a971d01
|
2022-07-06T12:37:43
|
|
[layout] Use is_source_of instead of is_iterator
|
|
0dc0da05
|
2022-07-06T12:33:37
|
|
[iter] Add hb_is_sorted_iterator(_of)
|
|
587969af
|
2022-06-30T21:37:42
|
|
[subset] Drop scripts that are not in the layout_scripts list.
|
|
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
|
|
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.
|