src/hb-subset-cff2.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 65d96303 2022-12-02T14:59:26 [subset-cff2] Whitespace
Behdad Esfahbod 6012d3b2 2022-12-01T17:33:53 [subset-cff] Write out charstrings zerocopy to serializer
Behdad Esfahbod c7b998b3 2022-11-28T16:18:21 [cff2] Don't share fd-array link No point.
Behdad Esfahbod 3d9e3c2d 2022-11-28T16:17:09 [subset-cff2] Don't share varstore object
Behdad Esfahbod bab8ec58 2022-11-21T17:46:32 [subset-cff] Disable sharing when packing charstring INDEXes Saves another 8%ish.
Behdad Esfahbod 0a42410d 2022-05-10T12:05:19 [cff2] Change extents/shape stack to be just a number Do the blending immediately. Fixes https://github.com/harfbuzz/harfbuzz/issues/3559 Benchmark on AdobeVFPrototype shows 35% speedup. Now we're faster than FreeType: Benchmark Time CPU Time Old Time New CPU Old CPU New ------------------------------------------------------------------------------------------------------------------------------------------------ BM_Font/glyph_extents/AdobeVFPrototype.otf/hb -0.3792 -0.3792 1584 983 1581 982 BM_Font/glyph_extents/AdobeVFPrototype.otf/ft +0.0228 +0.0224 1220 1248 1218 1245 BM_Font/glyph_extents/AdobeVFPrototype.otf/var/hb -0.3513 -0.3518 1616 1048 1613 1046 BM_Font/glyph_extents/AdobeVFPrototype.otf/var/ft +0.0172 +0.0169 1232 1254 1230 1251
Behdad Esfahbod ac1bb3e3 2022-01-20T11:47:17 [machinery] Move accelerators to constructor/destructor
Behdad Esfahbod 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.)
Behdad Esfahbod a1e9a276 2022-01-18T09:27:32 [subset-cff2] Drop an constructor/destructor pair
Behdad Esfahbod de2cef42 2022-01-18T09:21:31 [bimap] Remove init/fini
Garret Rieger 46d4a5e6 2021-07-29T15:07:13 [subset] Convert subset plan to use a flags bit set.
Khaled Hosny 3e2734cf 2021-07-26T02:12:21 [docs] Don’t use GTK-Doc syntax for internal functions We don’t generate docs for them, reduces the number of warnings.
Ebrahim Byagowi d0e2addd 2020-07-18T22:14:52 minor
jfkthame 1026b3d0 2020-05-06T21:32:24 [subset] Check vector resize() call for failure (#2389) Other .resize() calls are checked, presumably this one should be as well.
Ebrahim Byagowi 2be859d2 2020-04-20T23:48:23 minor, replace nullptr checks with implicit ones
Ebrahim Byagowi 2dda6dd7 2020-04-20T14:12:45 minor, tweak spacing turn 8 spaces to tab, add space before Null/Crap
Ebrahim Byagowi 8ca9df7a 2020-03-10T10:40:05 [subset] Remove not needed blob sanitize call
ariza 5935a1dc 2020-03-03T12:12:51 add pop_discard() calls to errror returns
ariza c05458ec 2020-03-02T16:51:19 update cff & cff2 subsetters
ariza 2792fb8b 2020-02-02T22:00:53 first rewrite of cff/cff2 _subset with _subset2
Ebrahim Byagowi ce114d6b 2019-12-31T15:53:02 minor, tweak spaces
Ebrahim Byagowi 453050ad 2019-10-13T08:38:56 Merge remote-tracking branch 'upstream/master' into var-subset
Ebrahim Byagowi c7621cf2 2019-10-08T13:24:26 Minor, replace hb_set_add with private API
Ebrahim Byagowi 9ff32b79 2019-08-29T19:53:18 Merge remote-tracking branch 'upstream/master' into glyf-rebase
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
blueshade7 8bf989ea 2019-07-08T17:13:29 update from master
Michiharu Ariza 5763a927 2019-07-01T15:17:19 Merge branch 'master' into var-subset
Michiharu Ariza 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()
Michiharu Ariza 09496695 2019-06-17T22:12:40 add hb_bimap_t, subclass hb_inc_bimap_t replacing CFF::remap_t
Behdad Esfahbod 737436d3 2019-06-18T13:07:44 Streamline HB_NO_CFF
Ebrahim Byagowi 9b853f75 2019-06-09T11:49:25 [cff] Use switch on multi-format structs (#1762)
Michiharu Ariza 4ddab6fa 2019-06-05T11:21:27 Merge branch 'master' into var-subset
Behdad Esfahbod ff799520 2019-05-14T07:44:03 Hopefully last warning fix
Behdad Esfahbod 7f6fca4e 2019-05-12T10:29:47 Force-disable CFF code under disabling conditions Subsetter size goes down from 190kb to 119kb. Main library about 7kb. Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 62dfe7ae 2019-05-10T23:17:15 [cff] Minor
Michiharu Ariza 02ae2591 2019-05-08T13:44:03 initialize return param subr_num in popSubrNum also snake_cased popSubrtNum and other surrounding function names
Michiharu Ariza a1177fec 2019-03-29T08:43:47 Merge branch 'master' into var-subset rebase master
Behdad Esfahbod b986c6a3 2019-03-29T20:17:46 [C++11] Remove IntType::set() in favor of operator=
Michiharu Ariza f1e97c18 2019-02-25T09:59:27 renamed hb_map2_t to hb_bimap_h in its own .hh
Michiharu Ariza 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
Michiharu Ariza f289ffe5 2019-02-25T09:59:27 renamed hb_map2_t to hb_bimap_h in its own .hh
Michiharu Ariza 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
Michiharu Ariza 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.
Michiharu Ariza d817b446 2019-02-25T09:59:27 renamed hb_map2_t to hb_bimap_h in its own .hh
Michiharu Ariza 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
Michiharu Ariza 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.
Michiharu Ariza f2908b4d 2019-01-31T14:16:37 Implement subset --regain-gids option with CFF1/2 along with api tests & expected results
Garret Rieger 846e05a2 2019-01-28T16:50:20 [subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
Behdad Esfahbod a5e5dd8b 2019-01-22T16:30:07 Fix sign-compare error resulted from promoting unsigned integers to signed larger ints Clang and gcc know not to warn in these cases, but not nonmainstream compilers
Michiharu Ariza 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
Behdad Esfahbod 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Michiharu Ariza 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
Michiharu Ariza 33358624 2018-12-11T12:20:20 minimize use of assert: removed or changed to error handling (#1467)
Behdad Esfahbod 825df6db 2018-11-30T23:04:59 [CFF] Change spaces to tabs
Behdad Esfahbod 592f39b3 2018-11-30T22:54:57 [CFF] Whitespace
Michiharu Ariza b6903bd6 2018-11-16T13:46:58 ensure fdmap initialized as identity for single-FD (non-CID) fonts
Michiharu Ariza 9d0231cf 2018-11-15T15:39:43 fixed a subset bug when no font dicts reduce
Michiharu Ariza 0dfa584c 2018-11-12T08:47:07 changed Adobe company name
Michiharu Ariza 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
Michiharu Ariza 2840a104 2018-11-01T16:18:13 tweaks to build with new merge
Michiharu Ariza 82248b92 2018-11-01T10:36:50 fix leak attempt ^2
Michiharu Ariza a9c305c2 2018-11-01T10:31:21 fix leaks
Michiharu Ariza d56e338a 2018-10-31T22:30:34 CFF1 no-desubroutinize + no-hinting no-desubroutinize option is disabled for now code cleanup (esp. CFF1 width handling) bug fixes & renaming
Michiharu Ariza 8679d02b 2018-10-18T13:04:21 implement flex ops for glyph extents/subset also removed unused CSInterpEnv::move_[xy]_with_arg fixed bug a width being left over on argStack with CFF1
Michiharu Ariza b51418f5 2018-10-08T15:05:36 added CFF2 get_extents added source hb-ot-cff2-table.cc augmented VariationData to return scalars misc bug fixes, renaming, cleanup
Michiharu Ariza 35b64dfb 2018-10-02T14:13:36 silence & fix new warnings
Michiharu Ariza ebeccf3e 2018-09-18T17:24:30 fixed char widths & standard Encoding in subset CFF also merged flush_n_args to flush_args into one takes start index of the arguments on stack instead of count
Michiharu Ariza c0c85b85 2018-09-17T11:14:56 implemented get_glyph_extents with CFF1 Implemented path operators in a new struct PathProc hooked up to CSOpSet Added current point to CSInterpEnv
Michiharu Ariza 0f159a38 2018-09-12T16:08:54 fixed serialize_fdselect_3_4
Michiharu Ariza 5b453f77 2018-09-11T16:20:39 fixed off-by-one error with offSize
Michiharu Ariza cc52e53c 2018-09-10T16:27:49 Removed unused subr subset code
Michiharu Ariza 1666b89e 2018-09-10T16:00:20 subset CFF1 String Index Repurposed FDMap as Remap then subclassed for remapping SIDs misc code cleanup
Michiharu Ariza aca73c9d 2018-09-06T17:28:15 subset CFF1 Encoding & Charset fixed misc Charset bugs added source file hb-ot-cff1.table.cc renamed things for clarity & consistency
Michiharu Ariza f2d299b0 2018-09-04T10:25:21 Drop hints from CFF2 charstrings Templatized ArgStack so it may store the default value along with blend deltas as BlendArg while parsing blend operator arguments in CFF2 charstring Added get_region_count() method to VarRegionList & VariationStore
Michiharu Ariza fcf17788 2018-08-31T16:28:47 templatized ArgStack as a prep to store blends
Michiharu Ariza 968168bf 2018-08-31T13:28:16 drop hints from CFF1 charstrings renamed confusing Stack.size to Stack.count
Michiharu Ariza 8c5e03b5 2018-08-30T17:21:56 Added drop_hints to SubrFlattener
Michiharu Ariza 9fd08cc2 2018-08-29T18:18:18 CFF2 subroutine flattner Factored out CFF1 & CFF2 common subsetting code in hb-subset-cff-common.hh
Michiharu Ariza 8af9690a 2018-08-29T13:26:17 Merge branch 'master' into cff-subset Renamed cff "private" source/headers without the suffix
Michiharu Ariza a11420b4 2018-08-29T12:14:30 Subroutine flattener for CFF1 Subr-flattened charstrings are temporarily re-encoded in ByteStrBuff during "plan" phase, then copied to hb_serialize_context_t during "write" phase CSOpSet may callback opcode processing "virtual" functions via CRTP Numer struct may store a value as fixed optionally in addition to int and float
Michiharu Ariza 5cde2f55 2018-08-17T16:50:13 drop hints from CFF & CFF2 Private
Michiharu Ariza cef75ea4 2018-08-17T13:13:18 Added CFF2 Subr nullifier along with CFF2 charstring interpreter factored out common code between CFF1 & CFF2 to CSInterpreter moved fetch_op from Interpreter to InterpEnv misc code clean up & bug fixes
Michiharu Ariza f57d6bcb 2018-08-16T08:03:46 renamed CFF::Index to CFF::CFFIndex to avoid confusion with OT::Index
Michiharu Ariza 867f68bd 2018-08-15T15:53:50 fix build attempt ^7
Michiharu Ariza 685db67b 2018-08-15T15:45:17 fix build attempt ^6
Michiharu Ariza 2810caaf 2018-08-15T15:30:24 fix build attempt ^5
Michiharu Ariza 633ce88d 2018-08-15T12:00:19 CFF Subrs subsetting Unreferenced subroutines are nullified (not removed) in a subset font Separate Interpreter struct from hb-ot-cff-common-private.hh in a set of four header files, augmented for CharString (CS): hb-cff-interp-common-private.hh hb-cff-interp-dict-common-private.hh hb-cff-interp-cs-common-private.hh hb-cff-interp-cs.hh Interpreter runtime is separated off as a new struct InterpEnv sub-classed differently for Dict and CharString (CS)
Michiharu Ariza a97ed342 2018-08-10T12:55:22 fixed inclusion of excluded Private & local Subrs It was bloating a multi-FD subset font unnecessarily defined a wrapper struct FDMap for fdmap
Michiharu Ariza 64c54122 2018-08-10T11:07:07 Added CFF support Added sources hb-ot-cff-table.hh, hb-subset-cff.cc & hh Templatized Index because CFF uses 16-bit count while CFF2 uses 32-bit Misc code cleanup & bug fixes
Michiharu Ariza 9fae33b9 2018-08-06T10:44:12 Silence Codacy
Michiharu Ariza 5561b818 2018-08-06T10:04:53 subset FDSelect and FDArray Added a set of sources hb-subset-cff-common-private.cc & .hh for FDSelect subseting code. Added FDSelect format 4 (CFF2 only) support. Shared its implementation with format 3 as a template.
Michiharu Ariza 00970dd2 2018-08-03T14:35:09 Removed parsed hint fields from CFF2PrivateDictValues Instead moved & stored uniformly in values vector (renamed from opstrs) This should be fine as we aren't likely going to use them as hints after all Templatized DictValues whether to parse them out For subsetter, they aren't parsed
Michiharu Ariza 76f7397c 2018-08-02T16:28:10 templatized CFF2 accelerator for lean Private dict interpretting for subset also fixed local subrs serialization
Michiharu Ariza 43040564 2018-08-02T12:23:10 removed TRACE_SERIALIZE from non-member function _write_cff2
Michiharu Ariza e2fd49e4 2018-08-02T11:39:22 Merge branch 'master' into cff-subset
Michiharu Ariza 693ae804 2018-08-02T11:22:42 more silencing fixes
Michiharu Ariza b2ff582c 2018-08-01T11:30:38 Implemented hb_subset_cff2 Added serialize functions to CFF2 structs Fixed issues & bugs & code cleanup Now subsetting CFF2 table outputs something
Michiharu Ariza 9c4cadae 2018-07-30T14:28:40 Added sanitize functions & calls Added sanitize functions to FDSelect Added satnitize calls for FDSelect, VariationStore, FDArray, TopDict