src/hb-subset.cc


Log

Author Commit Date CI Message
Garret Rieger 1840b02e 2022-12-19T20:06:32 [subset] Don't gate access to the table repacker. Any table with an object graph should repack correctly.
Garret Rieger b5acde43 2022-12-13T22:04:19 [subset] check pending/subsetted tag sets for alloc failure.
Garret Rieger 38a96288 2022-12-12T20:13:17 [subset] simplify handling of table subsetting depedencies. Allow the dependency checker to see all tables that will be subset. Use this to fix the HMTX/VMTX dep check against glyf. Don't delay hmtx/vmtx subsetting if no glyf table is present.
Garret Rieger 0853e5d9 2022-12-12T19:43:31 [subset] if table dependencies can't be resolved fail the subset. Avoids getting stuck in an infinite loop.
Garret Rieger 7a004a7a 2022-11-29T00:47:55 [subset] Cache per subtable cmap unicode mappings.
Garret Rieger 2c0afde7 2022-11-23T20:24:40 [subset] add an inprogress accelerator to plan. This allows subset code to cache information into the accelerator during preprocess subset. Previously the accelerator was created at the end of subsetting.
Behdad Esfahbod e0b06bd1 2022-11-21T16:09:39 [subset] Cache has_seac in accelerator Speeds up SourceHanSans-Regular/10000 benchmark by %25.
Behdad Esfahbod b0b7a653 2022-10-20T17:13:26 [subset] Fix check-symbols failure Fixes https://github.com/harfbuzz/harfbuzz/issues/3850
Garret Rieger 515863e5 2022-10-13T23:42:00 [subset] Remove add accelerator flag, replace with new api method. Adds hb_subset_preprocess() which preprocesses the face and attaches accelerator data.
Garret Rieger 01481db5 2022-10-13T21:12:22 [subset] use accelerator unicode to gid map if available.
Garret Rieger 4ec5eb95 2022-10-13T19:40:31 [subset] add a subset accelerator. Can be optionally attached to the face during subsetting. Contains data which can accelerate future subsets.
Qunxin Liu 0a6c16a3 2022-08-08T13:47:39 [instance] instantiate fvar table Added an old->new axes_indices mapping in the subset plan
Qunxin Liu ac0e22fa 2022-07-22T09:37:09 [instance] update glyf/hmtx/vmtx tables
Qunxin Liu df55f840 2022-06-30T09:36:19 [instance] instantiate STAT table when axes are pinned at fixed locations restricting ranges is not supported yet.
Qunxin Liu 2a4773e4 2022-06-21T19:29:52 add option "--instance", store axes_location in subset_plan and drop all variation tables when all axes are pinned at default
Behdad Esfahbod ac216972 2022-07-13T15:32:19 [subset] Add table size blowup bound Fixes https://github.com/harfbuzz/harfbuzz/issues/3091
Garret Rieger 29f149c1 2022-07-07T20:16:16 [subset] cache sanitized tables in subset plan to avoid sanitizing tables multiple times.
Garret Rieger 5fdae684 2022-06-29T23:52:08 [reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl.
Garret Rieger 3fbf2dec 2022-06-28T23:55:32 [reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS.
Garret Rieger 88ef3c5a 2022-06-28T23:26:49 [reorg] Change OT::Layout::GPOS to OT::Layout::GPOS_impl.
Garret Rieger 74f45f7c 2022-06-24T23:14:30 [reorg] Move remaining GPOS lookup types to new directory.
Behdad Esfahbod e9c0a740 2022-06-15T16:57:16 Fix clang -Wcomma warnings Fixes https://github.com/harfbuzz/harfbuzz/issues/3656
Garret Rieger e00c7358 2022-05-25T22:35:23 [subset] special case table presence check for hb_face_create_from_tables faces.
Garret Rieger 6a149a09 2022-05-25T22:22:35 [subset] fix use of lazy static constructor.
Garret Rieger d4c7939e 2022-05-25T22:11:32 [subset] use a list of known tables instead of handled tables.
Garret Rieger 3472f73b 2022-05-25T21:49:12 [subset] also include no subset tables when guessing which tables are present.
Garret Rieger 9564d987 2022-05-25T21:16:37 [subset] fix subsetting of faces created via hb_face_create_for_tables. Fixes #3609.
Behdad Esfahbod c78d8ba6 2022-05-11T13:05:41 [subset] Allocate same size as source table for GSUB/GPOS/name
Behdad Esfahbod 2e7f1ae4 2022-05-11T12:49:16 [subset] Use vector.allocated size instead of tracking buf_size
Behdad Esfahbod aeb50b89 2022-05-10T18:06:53 [subset] Retain buffer across table subset operations
Garret Rieger b342adeb 2022-03-23T16:28:22 [reorg] Move GSUB into OT::Layout::GSUB namespace.
Khaled Hosny 8d1b000a 2022-03-01T21:27:32 4.0.0
Garret Rieger fc1548cf 2022-02-17T17:16:31 [subset] document return values.
Garret Rieger 670ef070 2022-02-11T16:01:33 [subset] Change subset plan create to be or_fail.
Garret Rieger ae8d373b 2022-02-11T14:54:23 [subset] add subset plan reference, set/get user data functions.
Garret Rieger b65e48a7 2022-02-11T12:44:58 [subset] Add subset plan to public API. Add the ability to create a subset plan which an be used to gather info on things like glyph mappings in the final subset. The plan can then be passed on to perform the subsetting operation.
Garret Rieger fa966bcc 2021-12-06T12:54:19 [repacker] create repacker output buffer after final length is known. Don't rely on a buffer provided by the caller, as it may not be large enough.
Garret Rieger 41bbf281 2021-09-08T10:14:00 [repacker] do extension subtable isolation before starting resolution attempts.
Qunxin Liu ca7b9dae 2021-09-20T14:42:51 [subset] subset MATH table
Garret Rieger d700646c 2021-09-16T11:23:09 [subset] In preperation for 3.0.0 release remove legacy subsetting api methods.
Khaled Hosny 9aa6f8a9 2021-08-18T09:32:04 2.9.0
Garret Rieger d18aad7e 2021-08-13T15:05:48 [subset] restore old subsetting api methods. These will be left in place until the 3.0.0 release.
Garret Rieger 46d4a5e6 2021-07-29T15:07:13 [subset] Convert subset plan to use a flags bit set.
Garret Rieger fc7f7781 2021-07-27T12:21:19 [subset] add a note to hb-subset on what is and isn't supported (#3076)
Qunxin Liu 71b5509c 2021-07-20T20:05:35 [subset] support option --glyph-names
Garret Rieger 89fc399e 2021-07-22T13:00:34 [subset] Add hb-subset section documentation.
Garret Rieger 9ab751ac 2021-06-23T13:38:47 [subset] Remove hb_subset(). Leaving just hb_subset_or_fail().
Garret Rieger a6c6cda4 2021-06-09T17:46:47 [subset] Add no subset tables and passthrough unrecognized tables to the subset api. Matches fontTools options.
Garret Rieger 668f2bd9 2021-06-09T16:33:50 [subset] Add hb_subset_or_fail () to public subset api.
Garret Rieger edb57a8d 2021-06-09T10:42:48 Make subset input const in the subsetting operation. Don't modify the subset input's sets.
Qunxin Liu 7ab0f4ed 2021-05-27T11:40:34 fuzzer fix
Qunxin Liu f739e1dc 2021-05-11T11:44:32 [subset] subset both CPAL and COLRv1
Garret Rieger 3fb62cdc 2021-04-05T15:48:34 [subset] fail on offset overflow in tables that we don't repack. Fixes: https://oss-fuzz.com/testcase-detail/5229304507138048
Garret Rieger 3c8273ab 2021-03-25T11:39:57 Check for alloc failures on the gsub/gpos_langsys maps in subset plan creation.
Garret Rieger 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.
Garret Rieger 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.
Garret Rieger 832f2b59 2020-11-10T16:15:37 [subset] Refactor _subset () to reduce nesting and eliminate the use of 'goto'.
Garret Rieger 6e9468fc 2020-11-09T16:52:36 [subset] cleanup memory leaks in the repacker.
Garret Rieger dd8e5d0e 2020-11-03T14:01:42 [subset] Only run the repacker for GSUB/GPOS.
Garret Rieger 6b1ea4cb 2020-10-30T12:16:26 [subset] hook up the repacker to run if offset overflows are encountered during subsetting.
Garret Rieger dae32b4f 2020-07-28T18:31:46 [subset] bail out of subsetting if plan allocation fails.
Qunxin Liu 8b5d3ebd 2020-04-17T11:58:31 [subset] GSUB5/GPOS7 Contextual Subst/Pos Subtbale Subsetting support
Ebrahim Byagowi e642aab1 2020-02-28T22:24:25 [subset] Add source_blob as a hb_subset_context_t field (#2203) So no more double sanitizing source table.
Ebrahim Byagowi a7f694d4 2020-02-05T16:31:21 Merge branch 'subset_cblc' into master
Ebrahim Byagowi 43016715 2020-02-05T15:02:20 [subset] minor on _subset
Ebrahim Byagowi dcb5dfc9 2020-02-05T15:01:25 [subset] minor on tables iteration
Ebrahim Byagowi a8593339 2020-02-05T15:00:25 [subset] minor on switch statements
Ebrahim Byagowi b1f63109 2020-02-05T00:28:21 [subset] Optimize _is_table_present One call for most of the fonts and no malloc
ckitagawa 0d61926c 2020-02-04T13:36:51 [subset] Keep head when no glyf table
Ebrahim Byagowi 5b436033 2020-02-04T21:29:19 [subset] Rename _subset2 to _subset
ariza 2792fb8b 2020-02-02T22:00:53 first rewrite of cff/cff2 _subset with _subset2
ckitagawa e128f802 2020-01-21T13:35:43 parent 777ba47b50f6379b9f9abf1d72559316b7116b9e author ckitagawa <ckitagawa@chromium.org> 1579631743 -0500 committer ckitagawa <ckitagawa@chromium.org> 1580506176 -0500 [subset] Add CBLC support
ckitagawa ed857c46 2020-01-24T08:52:23 [subset] Add COLR support
ckitagawa 43b6c865 2020-01-09T10:44:20 [subset] Support sbix subsetting
Ebrahim Byagowi 19d45dca 2019-10-03T13:39:17 Merge remote-tracking branch 'upstream/master' into var-subset
Ebrahim Byagowi 41d6e95b 2019-09-02T01:41:48 [subset] Use internal API of hb_set_t
Ebrahim Byagowi 8ccf328d 2019-09-02T00:02:06 [subset] Run once for a tag
Ebrahim Byagowi f441a7c0 2019-09-01T02:18:09 Don't allow reference blob be accessed using empty tag in hb_face_reference_table (#1947)
Ebrahim Byagowi 28c8dcb5 2019-08-31T12:27:14 [subset] minor
Ebrahim Byagowi 9ff32b79 2019-08-29T19:53:18 Merge remote-tracking branch 'upstream/master' into glyf-rebase
Ebrahim Byagowi 875985cd 2019-08-29T14:51:22 [subset] Don't allow malicious fonts to insert unlimited table headers Fixes https://crbug.com/oss-fuzz/16810
Ebrahim Byagowi 88e9db19 2019-08-27T02:44:26 [subset] Remove subset table size assertion As https://github.com/harfbuzz/harfbuzz/pull/1930#issuecomment-525036802
Ebrahim Byagowi 269a120f 2019-08-25T20:37:00 [subset] Raise the bar in new vs old table size https://crbug.com/oss-fuzz/16740 This is actually an interesting thing that {h,v}mtx allocates as much as a font pretends to have glyphs but the solution is not that obvious as regular fonts can have less than actually containing metrics in their {h,v}mtx. This change raises the bar to consider this hmtx 4 byte for every glyph case. Initially we wanted to just find things allocating crazy amount of memory but having the assert has led to interesting findings also so let's don't remove the assert and see what we can find elsewhere.
Ebrahim Byagowi 922898c8 2019-08-23T22:04:14 [subset] Fail on table grow more than 16x+4096
Ebrahim Byagowi 28aba780 2019-08-23T16:47:15 [subset] Fix blob leak of _subset2 when returns early Fixes https://crbug.com/oss-fuzz/16639
Qunxin Liu 37572882 2019-06-25T13:17:30 [subset] cmap table to use _subset2 and new iterator frameworks
blueshade7 8bf989ea 2019-07-08T17:13:29 update from master
Michiharu Ariza 5763a927 2019-07-01T15:17:19 Merge branch 'master' into var-subset
Qunxin Liu 9bd8d66c 2019-06-12T11:02:48 [subset] VORG table to use _subset2 method and new iterator frameworks
Garret Rieger f9b1ae73 2019-06-05T17:40:59 [subset] Move OS/2 to subset2.
Qunxin Liu 93d592e0 2019-06-05T16:51:31 [subset] post table to use _subset2
Qunxin Liu db938479 2019-06-04T10:30:53 [subset] maxp table to use _subset2
Michiharu Ariza 4ddab6fa 2019-06-05T11:21:27 Merge branch 'master' into var-subset
Qunxin Liu 209491fc 2019-05-29T14:03:17 [subset] Hmtx/vmtx tables to use subset2 and new iterator frameworks
rsheeter 96de9476 2019-05-24T11:22:41 Merge pull request #1722 from googlefonts/glyf [subset] Use iterators in glyf/loca subsetting
Garret Rieger ff7fc6d4 2019-05-22T17:36:16 [subset] Add morx, mort, kern, and kernx to the default layout tables drop list.
Rod Sheeter d1b12a54 2019-05-20T21:29:54 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf
Rod Sheeter 82bbec30 2019-05-16T15:14:01 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf
rsheeter 240bc86e 2019-05-08T14:59:03 [subset] Remove subset-glyf; want everything to point to new iter-based edition. Some of the code will resurface as impl builds out.
rsheeter 02d4d4f3 2019-05-08T14:43:18 [subset] Starting to sketch glyf as iter