|
a5d35fd8
|
2022-11-25T23:17:05
|
|
[subset] use charstrings directly from accelerator cache if mutability isn't needed.
|
|
74acf52f
|
2022-11-25T14:43:44
|
|
[subset-cff] Micro-optimize copy_str more
|
|
d2f3cde7
|
2022-11-25T14:38:30
|
|
[subset-cff] Micro-optimize copy_str
|
|
22990fca
|
2022-11-25T14:12:58
|
|
Merge pull request #3894 from googlefonts/cff_accel
[subset] Cache parsed char strings in CFF accelerator
|
|
8d5c899b
|
2022-11-25T20:33:39
|
|
[subset] In cff accelerator hold reference to CFF table instead of the whole font.
|
|
75a99f28
|
2022-11-25T18:38:13
|
|
[subset] destruct cff accelerator if present.
|
|
1d474194
|
2022-11-25T13:21:35
|
|
[subset-cff] Micro-optimize encode_str
|
|
3c4a610b
|
2022-11-25T13:16:30
|
|
[subset-cff] Micro-optimize copy_str some more
|
|
535aadb3
|
2022-11-25T13:07:42
|
|
[subset-cff] Micro-optimize collect_subr_refs_in_str more
|
|
00a9df3a
|
2022-11-25T13:05:05
|
|
[subset-cff] Micro-optimize collect_subr_refs_in_str
|
|
71c23c1c
|
2022-11-25T18:04:44
|
|
[subset] don't copy the entire global/loca subr lists from the accelerator.
Instead run a closure on the retained charstrings and copy only the referenced subrs. This significantly speeds up cases with small character sets.
|
|
4ff09274
|
2022-11-24T22:47:29
|
|
[subset] In CFF accelerator keep a reference to original face.
The charstring objects reference memory from the original face so we need to maintain a reference to prevent it from being destroyed.
|
|
a3afa61c
|
2022-11-23T22:24:39
|
|
[subset] use cached parsed char strings if available.
|
|
47c12584
|
2022-11-23T21:02:39
|
|
[subset] Cache parsed charstrings in the cff accelerator.
|
|
48b68370
|
2022-11-23T20:51:51
|
|
[subset] add a CFF specific accelerator object.
This allows CFF specific accelerator structures to be isolated to the CFF code.
|
|
d77f346d
|
2022-11-24T14:02:46
|
|
[subset-cff] Minor rename
|
|
29a0fa08
|
2022-11-24T14:00:59
|
|
[subset-cff] Micro-optimize
|
|
0bf7d9eb
|
2022-11-23T13:00:23
|
|
[subset-cff] Micro-optimize encode_byte
|
|
a23f8204
|
2022-11-23T12:56:13
|
|
[subset-cff] Micro-optimize array access
|
|
59c45f6d
|
2022-11-22T12:54:50
|
|
Use hb_memcpy instead of memcpy consistently
|
|
c53c6481
|
2022-11-22T12:46:25
|
|
[subset-cff] Another handrolled memcpy
|
|
1572ba28
|
2022-11-21T22:26:44
|
|
[subset-cff] Return in subr closure if already seen subr
Not sure why this was not done before.
|
|
a29ca6ef
|
2022-11-21T22:02:17
|
|
[subset-cff] Comment
|
|
28e767dd
|
2022-11-21T21:59:51
|
|
[subset-cff] Really optimize op_str_t / parsed_cs_op_t layout
Now parsed_cs_op_t and op_str_t are both 16 bytes.
Saves another 7% in SourceHanSans/10000 benchmark.
|
|
2d5ee237
|
2022-11-21T21:37:38
|
|
[subset-cff] Readjust parsed_cs_op_t
Now it doesn't matter anymore since op_str_t is adjusted and
is 16 bytes with 8byte alignment.
|
|
4f056b92
|
2022-11-21T21:37:38
|
|
[subset-cff] Optimize op_str_t layout
|
|
dc3bb5e0
|
2022-11-21T18:18:48
|
|
[subset-cff] Pre-allocate values array for subroutines as well
|
|
c6279224
|
2022-11-21T18:01:50
|
|
[cff] Adjust pre-allocation
This better matches actual usage, given that ops are one or two
bytes, and vector also allocates 50% extra.
|
|
2cadacad
|
2022-11-21T17:17:15
|
|
[cff] Simplify str_encoder_t error handling
|
|
f263e3fe
|
2022-11-21T17:04:55
|
|
[cff] Manually copy short strings instead of memcpy()
|
|
38efd186
|
2022-11-21T17:02:11
|
|
[cff] Add a likely()
|
|
191025cc
|
2022-11-21T16:58:19
|
|
[cff] Adjust buffer pre-allocation
Most ops take one or two bytes, so allocate count*2, not count*3.
Shows minor speedup in subsetting benchmark (around 2%).
|
|
4b2caafe
|
2022-11-21T16:46:20
|
|
[subset-cff] Optimize parsed_cs_op_t size
Shows 5% speedup on SourceHanSans-Regular/10000 benchmark.
|
|
98aaecd3
|
2022-06-01T21:01:16
|
|
[subset] fix data race touching Crap() in cff subsetting.
|
|
e91863b7
|
2022-05-18T12:39:55
|
|
[subset-cff] Pre-size map in subr_remap_t::create()
|
|
b5aa8a27
|
2022-05-18T11:58:58
|
|
[subset-cff] Cosmetic
|
|
0b201623
|
2022-05-18T11:58:22
|
|
[subset-cff] Fix previous commit
Oops!
|
|
47923092
|
2022-05-18T11:54:08
|
|
[subset-cff] Access vector directly
|
|
7c86f2e7
|
2022-05-18T11:45:27
|
|
[subset-cff] Pre-alloc out buffer
|
|
0761e7cd
|
2022-05-18T11:37:57
|
|
[subset-cff] Avoid resetting buffer as encoder does
|
|
71aa10a3
|
2022-05-18T11:37:24
|
|
[subset-cff] Manually grow vector to avoid memset overhead
|
|
f455cc53
|
2022-05-18T11:31:55
|
|
[subset-cff] Reuse buffer allocation
|
|
fb413f52
|
2022-05-16T17:08:43
|
|
[subset/cff] Don't use bitfields for hot bools
The struct has room because of alignment, and these bools are hot.
|
|
f0853796
|
2022-05-11T12:10:03
|
|
[cff-subset] Pre-alloc vector for operator decoding
|
|
bff78e65
|
2022-05-10T16:33:37
|
|
[cff] Convert interpretation environment to use constructor
|
|
de053e2e
|
2022-05-10T15:38:37
|
|
[cff] Convert subr_subset_param_t to use constructor
|
|
8aa54aac
|
2022-05-09T16:09:56
|
|
[cff] Replace byte_str_t with hb_bytes_t use
|
|
fe783ac0
|
2022-01-18T13:38:28
|
|
[cff] Remove op_str_t nop init/fini
|
|
f1dc8b08
|
2022-01-18T10:29:04
|
|
[subset-cff] Convert subr_closures_t to constructor/destructor instead of init/fini.
|
|
a48aa985
|
2022-01-18T09:32:58
|
|
[subset-cff] Remove another set of fini_deep
|
|
de2cef42
|
2022-01-18T09:21:31
|
|
[bimap] Remove init/fini
|
|
46d4a5e6
|
2021-07-29T15:07:13
|
|
[subset] Convert subset plan to use a flags bit set.
|
|
32f052b0
|
2020-07-30T13:45:04
|
|
[ENOMEM] Fix several instances of not checking resize in CFF.
|
|
2be859d2
|
2020-04-20T23:48:23
|
|
minor, replace nullptr checks with implicit ones
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
0b290538
|
2020-03-04T22:31:21
|
|
removed unused code
|
|
e8f010d7
|
2020-03-04T16:54:27
|
|
removed unused code & data; rename
|
|
c05458ec
|
2020-03-02T16:51:19
|
|
update cff & cff2 subsetters
|
|
ce114d6b
|
2019-12-31T15:53:02
|
|
minor, tweak spaces
|
|
453050ad
|
2019-10-13T08:38:56
|
|
Merge remote-tracking branch 'upstream/master' into var-subset
|
|
c7621cf2
|
2019-10-08T13:24:26
|
|
Minor, replace hb_set_add with private API
|
|
0558413f
|
2019-10-01T13:49:55
|
|
Minor, tweak spaces
|
|
8bf989ea
|
2019-07-08T17:13:29
|
|
update from master
|
|
f3ee2bd0
|
2019-06-20T14:33:09
|
|
add ops & methods to hb_bimap_t making it more like hb_map_t
moved has () to hb_bimap_t from hb_inc_bimap_t
moved identity () to hb_inc_bimap_t
removed forward()
|
|
09496695
|
2019-06-17T22:12:40
|
|
add hb_bimap_t, subclass hb_inc_bimap_t replacing CFF::remap_t
|
|
a1177fec
|
2019-03-29T08:43:47
|
|
Merge branch 'master' into var-subset
rebase master
|
|
b986c6a3
|
2019-03-29T20:17:46
|
|
[C++11] Remove IntType::set() in favor of operator=
|
|
f1e97c18
|
2019-02-25T09:59:27
|
|
renamed hb_map2_t to hb_bimap_h in its own .hh
|
|
a00d1d5e
|
2019-02-21T16:34:49
|
|
fix CFF2 local subr subsetting
bug exposed by impl change of fdmap
also fixed name of subr_remap_ts as subr_remaps_t
|
|
f289ffe5
|
2019-02-25T09:59:27
|
|
renamed hb_map2_t to hb_bimap_h in its own .hh
|
|
c485b77c
|
2019-02-21T16:34:49
|
|
fix CFF2 local subr subsetting
bug exposed by impl change of fdmap
also fixed name of subr_remap_ts as subr_remaps_t
|
|
c8420109
|
2019-02-20T15:48:29
|
|
subset HVAR
Re-implemented & repurposed CFF:remap_t as hb_map2_t (moved to hb-ot-layout-common.hh) for two-way mapping for use by index map subsetting.
Hooked up HVAR subsetter through _subset2.
Some renaming in CFF code.
|
|
d817b446
|
2019-02-25T09:59:27
|
|
renamed hb_map2_t to hb_bimap_h in its own .hh
|
|
a7b801f6
|
2019-02-21T16:34:49
|
|
fix CFF2 local subr subsetting
bug exposed by impl change of fdmap
also fixed name of subr_remap_ts as subr_remaps_t
|
|
09df17e7
|
2019-02-20T15:48:29
|
|
subset HVAR
Re-implemented & repurposed CFF:remap_t as hb_map2_t (moved to hb-ot-layout-common.hh) for two-way mapping for use by index map subsetting.
Hooked up HVAR subsetter through _subset2.
Some renaming in CFF code.
|
|
c6af8461
|
2019-02-12T15:10:43
|
|
tweaked --desubroutinize to remove hintmask only subrs
|
|
f2908b4d
|
2019-01-31T14:16:37
|
|
Implement subset --regain-gids option with CFF1/2
along with api tests & expected results
|
|
d25a2f14
|
2018-12-23T20:19:52
|
|
Fix a few warnings
|
|
ae6e348d
|
2018-12-22T19:47:29
|
|
Minor, tweak spaces
|
|
29f0b6bc
|
2018-12-22T07:47:04
|
|
CFF renaming (#1507)
* reimplement ByteStr as byte_str_t based on hb_ubytes_t
Unuse start_embed<ByteStr>
Also renamed SubByteStr to byte_str_ref_t
More renaming to come
* substr renamed to str_ref in line with its type byte_str_ref_t
* uncamelize non-table struct names
* uncamelized non-struct types OpCode etc
* add byte_str_t copy ctor
* test
* test2
* undo tests
* fix bot failure
* undo the previous change
* fixed tabs, added inline
* Revert "fixed tabs, added inline"
This reverts commit 21163c30e9d18759414f7fe2518628241599f039.
* fix tabs
|
|
474a1205
|
2018-12-21T18:46:51
|
|
[array/vector] Rename len to length
|
|
e4120085
|
2018-12-17T21:31:01
|
|
Remove redundant void from C++ sources (#1486)
|
|
b2ebaa9a
|
2018-12-16T22:38:10
|
|
Remove redundant 'inline' from methods (#1483)
|
|
bcb4ecaf
|
2018-12-12T17:36:01
|
|
[CFF] check out of range FD index (#1477)
* add fd index checks to subr subsetter
also added oss-fuzz test case
* undid SubrSubsetParam::is_valid
because already validated by SubrClosures.valid
|
|
2941208f
|
2018-12-11T12:21:24
|
|
[CFF] oss-fuzz issue 11690 ASSERT: substr.offset >= opStart (#1461)
* fix oss-fuzz 11690: substr.offset >= opStart
detect recursive subroutine call & handle as error
* fix build failure
* add minimized test case for oss-fuzz 11690
* removed asserts
|
|
33358624
|
2018-12-11T12:20:20
|
|
minimize use of assert: removed or changed to error handling (#1467)
|
|
825df6db
|
2018-11-30T23:04:59
|
|
[CFF] Change spaces to tabs
|
|
592f39b3
|
2018-11-30T22:54:57
|
|
[CFF] Whitespace
|
|
d8c69137
|
2018-11-30T18:58:14
|
|
undo 0u
|
|
9483da14
|
2018-11-30T16:59:41
|
|
redo fixes
|
|
291da448
|
2018-11-30T16:50:46
|
|
yet another
|
|
b1821b9d
|
2018-11-30T16:31:01
|
|
some more
|
|
b67a7c73
|
2018-11-16T12:28:24
|
|
drop dotsection as hint along with test case
|
|
072c7aba
|
2018-11-15T15:41:46
|
|
use 2-byte offset instead of 4-byte for local subrs
more than enough since local subrs immediately follow its corresponding private dict, as the result 2-byte redunction for each font dict with local subrs
updated api test expected subset fonts accordingly
|
|
0dfa584c
|
2018-11-12T08:47:07
|
|
changed Adobe company name
|
|
636a6833
|
2018-11-07T17:58:45
|
|
fixed ends_in_hint bug
subr ends in hint itself should be regarded as hint
this flag should propagate to its caller if the call itself is at the end of the caller
|
|
0996c0ff
|
2018-11-07T14:48:37
|
|
implented no-desubroutinize with CFF2 along with API test
replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy
replaced expected results as well
|
|
b721fdae
|
2018-11-04T16:19:15
|
|
fixed leaks in CFF subr subset
|
|
85f5644e
|
2018-11-04T14:17:30
|
|
added missing switch breaks
|
|
191ca0f1
|
2018-11-03T22:42:22
|
|
CFF1 no-desubr fixes
make sure charstring/subrs not ending with endchar/return handled correctly
if no local subrs, skip serializing Subrs op in Private
misc fixes
|