|
82466d37
|
2025-05-14T21:54:24
|
|
Fix cmap4 overflow pathway.
cmap4 serialize was doing a pop_discard() on overflow, however the encoding record above it was also doing one as well. Remove the unnessecary cmap4 pop_dicard(). Note: in cmap4 there was a comment implying the subsequent pop_discard() would be a noop due to the set error, however is not true since pop_discard() still works when there's been an overflow error.
|
|
8864c264
|
2025-04-01T21:22:16
|
|
[cmap] Fix initialization
|
|
3d0816c7
|
2025-04-01T21:18:29
|
|
[cache] Simplify cache declarations
|
|
591f00a2
|
2025-04-01T20:56:40
|
|
[cmap] Move cache from face to cmap accelerator
No need to use user-data for it.
Fixes https://github.com/harfbuzz/harfbuzz/issues/5235
|
|
7ebe6b48
|
2025-04-01T20:46:55
|
|
[cmap] Whitespace
|
|
bed2d3dd
|
2025-04-01T17:52:57
|
|
[cache] Add assertion for cache size
Expand cmap cache since free.
|
|
b0d52abe
|
2024-10-23T20:49:44
|
|
[subset] consider variation selectors subsetting cmap14
cmap14 subsetting code was not considering variation selectors in the input unicode set when deciding which variant glyphs to keep. This updates subsetting to only keeps variant glyphs if their variation selector code point is in the input unicodes set.
For https://github.com/harfbuzz/harfbuzz/issues/4911
|
|
7a890c2e
|
2024-09-22T13:19:02
|
|
Add hb_barrier() to switches of unions
https://github.com/harfbuzz/harfbuzz/pull/4864#issuecomment-2366923736
|
|
67c301fd
|
2024-06-27T23:47:48
|
|
[cmap] Fix macroman lookup
Fixes https://github.com/harfbuzz/harfbuzz/issues/4774
Untested.
|
|
1bddeb97
|
2024-02-16T23:20:54
|
|
Use literal bools when possible rather than ints.
|
|
e0e2b29e
|
2024-01-08T12:30:23
|
|
[cmap] Implement MacRoman encoding
For other Mac encodings just map the ASCII range.
Fixes https://github.com/harfbuzz/harfbuzz/issues/4540
|
|
e9d72717
|
2024-01-04T09:36:14
|
|
[cmap] Remove more unused code
|
|
f8d924e5
|
2024-01-04T09:35:15
|
|
[cmap] Remove unused code
|
|
d9357a1a
|
2023-11-10T14:08:03
|
|
[cmap] Speed up Format12/13 collect_mapping
|
|
ae6ea6f4
|
2023-11-10T13:52:34
|
|
[cmap] Micro-optimize
|
|
7ee7e2e3
|
2023-11-04T15:02:28
|
|
[sanitize] Add remaining hb_barrier() annotations
I'm sure I've forgot some. But this is a good start.
|
|
49c52fa9
|
2023-06-26T17:55:29
|
|
[cmap] Don't zero a few allocations unnecessarily
|
|
393f0f9f
|
2023-06-25T18:14:56
|
|
[map] Rename resize() to alloc()
Better matches the functionality, and hb_vector_t.
|
|
67b16247
|
2023-06-07T16:15:48
|
|
[set] Simplify a few set iterations as range loop
|
|
3f2a1b64
|
2023-06-04T10:13:53
|
|
Fix build
|
|
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
|
|
a652281e
|
2023-05-26T19:47:50
|
|
[subset] Fix fuzzer timeout.
Fixes https://oss-fuzz.com/testcase-detail/5979721620652032. Timeout was caused by degenerate map insert behaviour due to poor integer hash function. Presize the map to avoid it. Also fixes collect_mapping() for cmap format 13.
|
|
9ee7c2ea
|
2023-04-25T16:13:54
|
|
[cmap] Minor remove magic number
|
|
580b0dc1
|
2023-04-25T16:11:01
|
|
[cmap] Comment
|
|
784fe9ac
|
2023-01-29T09:26:52
|
|
[cmap] Simplify caching
|
|
a451aa54
|
2023-01-29T11:25:28
|
|
Add back a null check
This was accidentally dropped in the previous commit.
|
|
318aa107
|
2023-01-29T09:17:17
|
|
[ot-font] Use the cmap cache more
Use the cmap cache for get_nominal_glyph and
get_variation_glyph as well. The first of these
is used a lot in pango.
|
|
f8a744d9
|
2023-01-28T13:37:43
|
|
[ot-font] Add a cmap cache
Speeds up Roboto shaping by 7%, for 1kb per face.
|
|
a34a204b
|
2023-01-11T12:27:19
|
|
[subset-plan] Simplify unicodes allocation
|
|
bd4b040e
|
2023-01-11T11:23:48
|
|
[shape-plan] Simplify glyphs_requested allocation
|
|
023f595d
|
2022-12-03T11:18:05
|
|
[cmap] Speed up DefaultUVS::copy even more
Another 14% on SourceHanSerifVF/10 benchmark.
|
|
4ca61051
|
2022-12-03T11:15:06
|
|
[cmap] Remove double-min
|
|
cd29147e
|
2022-12-03T10:41:42
|
|
[cmap] Minor cast
|
|
4cdb5cc6
|
2022-12-03T10:40:24
|
|
[cmap] Minor change iterator
|
|
a2d33779
|
2022-12-03T09:49:00
|
|
Fix arm bot build
|
|
dabbf13d
|
2022-12-03T09:46:11
|
|
[cmap] Speed up DefaultUVS::copy
|
|
2658370f
|
2022-11-30T00:19:10
|
|
[subset] make the cmap cache in accelerator const.
|
|
7a004a7a
|
2022-11-29T00:47:55
|
|
[subset] Cache per subtable cmap unicode mappings.
|
|
c503cf00
|
2022-11-28T15:53:35
|
|
[cmap] Store offset, not pointer, in cmap cache
|
|
a15ad778
|
2022-06-19T19:55:09
|
|
[arabic-fallback] Generate PUA table from data
Uses packtab for more compact arrays.
|
|
8c27c51c
|
2022-06-19T10:47:38
|
|
[arabic-pua] Rename symbols
|
|
76989629
|
2022-06-19T10:41:45
|
|
[arabic-fallback] Disable PUA shaping under HB_NO_OT_SHAPER_ARABIC_FALLBACK
|
|
55350377
|
2022-06-19T10:13:31
|
|
[cmap/ft] Only map 0xF000 range if font_page is NONE
|
|
c3f590bb
|
2022-06-16T11:04:13
|
|
[arabic] Support legacy PUA shaping
Support legacy pre-OpenType Windows 3.1-era fonts, by remapping PUA code
points in cmap table and letting our fallback shaper build the GSUB
table.
Uniscribe applies also mset-like substitution, but our fallback mark
positioning gives better results, so this is not implemented.
|
|
5dc12d7d
|
2022-06-03T01:37:02
|
|
[cmap] Rewrite set_for() slightly
|
|
9552955e
|
2022-06-03T01:33:01
|
|
Add an unlikely
|
|
a7a68861
|
2022-06-02T18:59:15
|
|
[cmap] Convert another map use to unique_ptr
|
|
f82ee17a
|
2022-05-18T12:17:43
|
|
[map] Pre-size map in constructor if we can
|
|
8f9f0c49
|
2022-05-10T17:47:08
|
|
[subset] Enforce cmap12 group ordering constraints in collect_mapping.
Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6365271012540416
|
|
f10ddb8d
|
2022-05-05T11:21:24
|
|
[cmap] Use -1 as Unicode sentinel, not U+FFFF in Format12 serialize
|
|
8a19968c
|
2022-05-05T11:17:23
|
|
[cmap] Use iterator bool operator
|
|
052812b6
|
2022-05-04T15:38:30
|
|
Merge pull request #3561 from googlefonts/cmap_opt
[subset] Further cmap subsetting speed optimizations
|
|
f0c04114
|
2022-05-03T22:02:59
|
|
[subset] Embed unicode to gid list vector in subset plan.
|
|
3fff2e91
|
2022-05-02T16:31:59
|
|
[perf/benchmark-font] Cosmetic
|
|
307d2d8b
|
2022-05-02T16:30:22
|
|
[cmap] Sprinkle some 'unlikely's
|
|
088133d9
|
2022-05-02T21:29:16
|
|
[subset] cache cp to new gid list in subset plan.
This avoids having to recompute the ordered list multiple times during cmap generation.
|
|
6922a256
|
2022-04-29T23:30:32
|
|
[subset] Change serialize_rangeoffset_glyid back to using iterator.
|
|
c66fd50c
|
2022-04-29T23:18:53
|
|
[subset] in cmap4 serialization save cp to gid iter to memory.
Iterator accesses are slow and it's iterated multiple times.
|
|
17b98563
|
2022-04-29T22:49:02
|
|
[subset] In cmap4 serialization reduce unnessecary calls into the iterator.
Gives ~20% speedup for large subsets.
|
|
5e241094
|
2022-04-29T22:44:43
|
|
[subset] In unicodes cache cleanup if set insert fails.
|
|
a424a92c
|
2022-04-29T22:14:03
|
|
[subset] s/void */intptr_t.
|
|
aad67f56
|
2022-04-29T22:01:06
|
|
[subset] cache results of collect_unicodes.
|
|
b4236b7d
|
2022-04-29T19:21:13
|
|
[subset] Optimize Cmap4 collect_unicodes.
Use set add_range() instead of individual add() calls.
|
|
f41945e3
|
2022-03-21T18:24:30
|
|
[cmap] In collect_unicodes() of format 12/13, limit to max Unicode
Fixes fuzzer timeout:
https://oss-fuzz.com/testcase-detail/5062368881672192
|
|
ac1bb3e3
|
2022-01-20T11:47:17
|
|
[machinery] Move accelerators to constructor/destructor
|
|
e062376e
|
2022-01-19T17:09:34
|
|
[machinery] Make accelerator lazy-loader call Xinit/Xfini
Instead of init/fini. To isolate those functions. To be turned into
constructor/destructors, ideally one per commit (after some SFINAE
foo.)
|
|
8a69e006
|
2022-01-13T16:17:34
|
|
[meta] Use std::addressof() instead of hb_addressof()
|
|
1d9ef3a7
|
2021-12-01T10:30:27
|
|
[subset] Actually fix end_cp unitialized warning.
|
|
d8635dfe
|
2021-12-01T10:14:10
|
|
[subset] Fix warning about uninitialized use of end_cp.
|
|
95329081
|
2021-11-26T16:18:42
|
|
[subset] further optimize cmap4 packing.
|
|
d9660fd5
|
2021-11-25T18:15:35
|
|
[subset] Make cmap4 packing more optimal.
The current CMAP4 implementation uses whatever the current codepoint ranges are and then encodes them as indivudal glyph ids or as a delta if possible. However, it's often possible to save bytes by splitting up existing ranges and encoding parts of them using deltas where the cost of splitting the range is less than encoding each glyph individual.
|
|
c852b868
|
2021-09-19T16:30:12
|
|
Rename HBGlyphID to HBGlyphID16
|
|
2bd911b8
|
2021-08-26T14:32:17
|
|
[subset] handle cmap4 overflows.
If a cmap4 subtable overflows during serialization drop it and the corresponding EncodingRecord. Don't drop the corresponding cmap12 table if it would have otherwise been removed.
|
|
b9a176e2
|
2021-08-29T10:33:12
|
|
[subset] speedup cmap4 subsetting for large codepoint counts. (#3178)
glyphIdArray generation implementation was O(n^2). Refactored to use a hashmap to reduce complexity. After the change subset time for a 22k codepoint subset went from 7s to 0.7s.
|
|
2c024dc3
|
2021-08-04T11:38:38
|
|
[subset] prune redundant cmap12 subtables.
If the post subset cmap12 table is equivalent to another cmap subtable don't include the 12 table in the final subset. Matches change https://github.com/fonttools/fonttools/pull/2146 from fontTools.
|
|
f0a1892f
|
2021-07-28T17:36:22
|
|
[serialize] Remove unnecessary pointer indirection
|
|
9aa0ecef
|
2021-07-14T17:27:14
|
|
[subset] de-duplicate the logic that finds unicodes corresponding to requested glyphs.
Move the logic into subset planning and then re-use the results in cmap and OS2 subsetting. Removes depedency on cmap from os2.
|
|
092094f7
|
2021-04-01T15:47:21
|
|
Use as_array() and range loops in a few places
|
|
4dba749d
|
2021-03-31T16:09:39
|
|
Add SortedArray{16,32}Of<>
|
|
ad28f973
|
2021-03-31T12:49:14
|
|
Rename offset types to be explicit about their size
Add Offset16To<>, Offset24To<>, and Offset32To<> for most use-cases.
|
|
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.
|
|
6d941944
|
2021-02-19T17:08:10
|
|
Use auto in range-for-loop more
|
|
18ab8029
|
2020-07-31T14:40:49
|
|
[ENOMEM] check vector status in cmap subsetting.
|
|
5a7cc7fd
|
2020-07-29T08:33:32
|
|
minor spacing tweak
|
|
d0e2addd
|
2020-07-18T22:14:52
|
|
minor
|
|
8e5bc535
|
2020-07-15T18:54:52
|
|
[subset] call collect_mapping only when --gids option is used.
collect_mapping is time consuming as it iterates all codepoints in all
cmap subtables, only trigger it when necessary
|
|
10d6605b
|
2020-05-15T10:52:49
|
|
[subset] don't use << operator in collect_mapping
|
|
b2a965df
|
2020-04-22T15:58:41
|
|
[subset] Add support for "--gids" option
cmap subsetting now retains entries associated with any glyph ids explicitly requested
|
|
e53c44e3
|
2020-04-24T14:06:13
|
|
[subset] temporarily revert previous cmap commit
Required in https://github.com/harfbuzz/harfbuzz/issues/2356
|
|
08428a15
|
2020-04-24T23:45:17
|
|
minor, spacing
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
a224f417
|
2020-03-13T08:33:34
|
|
Turn more of simple dagger chains to foreach
Less noise, as was agreed before and applied 385741d also
|
|
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
|
|
5ab50eeb
|
2020-02-29T01:32:29
|
|
collect_unicodes() with clamp, calling add_range()
Use add_range instead an inner loop, clamp its input number by
number of glyphs a face has.
Even the face cmap12 and 13 have 32-bit hb_codepoint_t, which is here
used to make timeout, face's maxp has 16-bit gid limitation at least for now,
using that makes sure we both fix and the timeout and don't need to change
much things here also in order to support 32-bit gids also someday.
Fixes #2204
|
|
e9021386
|
2020-02-28T21:24:27
|
|
Revert "collect_unicodes() to check gid < num_glyphs with cmap 12"
Didn't fix the case actually, making bots to fail.
This reverts commit 15b43a410400c74a32d40f4b89dbea02fa7cd6e1.
|
|
15b43a41
|
2020-02-28T08:45:39
|
|
collect_unicodes() to check gid < num_glyphs with cmap 12
fixes #2204
|
|
50129b03
|
2020-02-25T17:39:59
|
|
Add a reverse () call to hb_array_t.
|