Commit Graph

50 Commits

Author SHA1 Message Date
Ebrahim Byagowi
9b853f755d
[cff] Use switch on multi-format structs (#1762) 2019-06-09 11:49:25 +04:30
Michiharu Ariza
be82a2fc0c parenthesized cond-exp in CFF2FDSelect::sanitize 2019-06-03 15:52:23 -07:00
Behdad Esfahbod
ef00654962 Convert tag enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
6d042a18e7 [CFF] Use enum for tableTag 2019-01-22 10:51:20 +01:00
Behdad Esfahbod
b1152d5e66 Use NNOffsetTo<> 2019-01-17 18:17:04 -05:00
Michiharu Ariza
09fa536d89 fix lealk with cff2::accelerator_templ_t::topDict (#1517) 2018-12-27 11:33:09 -05:00
Behdad Esfahbod
d25a2f1496 Fix a few warnings 2018-12-23 20:34:24 -05:00
Michiharu Ariza
29f0b6bce7 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
2018-12-22 10:47:04 -05:00
Ebrahim Byagowi
e412008599 Remove redundant void from C++ sources (#1486) 2018-12-17 13:01:01 -05:00
Ebrahim Byagowi
b2ebaa9afa Remove redundant 'inline' from methods (#1483) 2018-12-16 14:08:10 -05:00
Ebrahim Byagowi
f95324a335
Merge pull request #1457 from harfbuzz/cff-varstore-sanitize
[CFF] oss-fuzz issue 11713 (CFF2VariationStore::serialize)
2018-12-06 08:33:44 +03:30
Michiharu Ariza
c31092ab34 sanitize variationStore in CFF2 against its size 2018-12-05 17:04:55 -08:00
Michiharu Ariza
6dcfda92c1 sanitize CFF1 & CFF2 global subrs 2018-12-05 15:07:46 -08:00
Michiharu Ariza
6ce8d10b45 add unlikely to error handling 2018-12-04 10:39:17 -08:00
Michiharu Ariza
0b952e6026 more leak fixes 2018-12-04 10:22:35 -08:00
Behdad Esfahbod
825df6dbc7 [CFF] Change spaces to tabs 2018-11-30 23:04:59 -05:00
Behdad Esfahbod
592f39b3c4 [CFF] Whitespace 2018-11-30 22:54:57 -05:00
Michiharu Ariza
0dfa584cb4 changed Adobe company name 2018-11-12 08:47:07 -08:00
Michiharu Ariza
ae8fd0dbfb clear stack after vsindex op 2018-11-07 09:16:12 -08:00
Michiharu Ariza
2840a104c1 tweaks to build with new merge 2018-11-01 16:18:13 -07:00
Michiharu Ariza
d56e338a90 CFF1 no-desubroutinize + no-hinting
no-desubroutinize option is disabled for now
code cleanup (esp. CFF1 width handling)
bug fixes & renaming
2018-10-31 22:30:34 -07:00
Michiharu Ariza
36c2c374bf removed unused multi_val from DictVal 2018-10-23 15:11:09 -07:00
Michiharu Ariza
7d99a6cef8 overhauled error handling in CFF interpreter
minimized "if (error) return false" idiom
2018-10-12 02:16:07 -07:00
Michiharu Ariza
b51418f596 added CFF2 get_extents
added source hb-ot-cff2-table.cc
augmented VariationData to return scalars
misc bug fixes, renaming, cleanup
2018-10-08 15:05:36 -07:00
Michiharu Ariza
ae7f0e83d4 fixed memory leaks
in CFF1 & CFF2 accelerators, VORG subsetter
2018-09-24 22:49:44 -07:00
Michiharu Ariza
98b94f8ba5 fix static_assert failure in OffsetTo<TopDict> 2018-09-17 13:56:39 -07:00
Michiharu Ariza
1234a81368 add head table to CFF/CFF2 2018-09-13 10:55:56 -07:00
Michiharu Ariza
1666b89e30 subset CFF1 String Index
Repurposed FDMap as Remap then subclassed for remapping SIDs
misc code cleanup
2018-09-10 16:00:20 -07:00
Michiharu Ariza
aca73c9df2 subset CFF1 Encoding & Charset
fixed misc Charset bugs
added source file hb-ot-cff1.table.cc
renamed things for clarity & consistency
2018-09-06 17:28:15 -07:00
Michiharu Ariza
5ea03d2951 fix build by untemplatizing DictOpSet & DictVal
as they aren't instantiated with BlendArg (yet)
2018-09-04 11:29:15 -07:00
Michiharu Ariza
f2d299b0b7 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
2018-09-04 10:25:21 -07:00
Michiharu Ariza
fcf177885b templatized ArgStack as a prep to store blends 2018-08-31 16:28:47 -07:00
Michiharu Ariza
968168bf0e drop hints from CFF1 charstrings
renamed confusing Stack.size to Stack.count
2018-08-31 13:28:16 -07:00
Michiharu Ariza
8af9690ac7 Merge branch 'master' into cff-subset
Renamed cff "private" source/headers without the suffix
2018-08-29 13:26:17 -07:00
Michiharu Ariza
cef75ea41a 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
2018-08-17 13:13:18 -07:00
Michiharu Ariza
f57d6bcbca renamed CFF::Index to CFF::CFFIndex
to avoid confusion with OT::Index
2018-08-16 08:03:46 -07:00
Michiharu Ariza
633ce88de9 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)
2018-08-15 12:00:19 -07:00
Michiharu Ariza
64c5412264 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
2018-08-10 11:07:07 -07:00
Michiharu Ariza
5561b81849 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.
2018-08-06 10:04:53 -07:00
Michiharu Ariza
cc3f4e00aa silence gcc 2018-08-03 15:00:37 -07:00
Michiharu Ariza
00970dd242 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
2018-08-03 14:35:09 -07:00
Michiharu Ariza
76f7397c10 templatized CFF2 accelerator for lean Private dict interpretting for subset
also fixed local subrs serialization
2018-08-02 16:28:10 -07:00
Michiharu Ariza
e2fd49e477 Merge branch 'master' into cff-subset 2018-08-02 11:39:22 -07:00
Michiharu Ariza
693ae80474 more silencing fixes 2018-08-02 11:22:42 -07:00
Michiharu Ariza
58279c3db4 silence Codacy 2018-08-02 10:18:01 -07:00
Michiharu Ariza
19ce0b24c0 removed unused field OpStr::update 2018-08-01 17:34:59 -07:00
Michiharu Ariza
16f4dc9b73 fixed CFF2VariationStore::serialize
also get_size
2018-08-01 16:06:52 -07:00
Michiharu Ariza
b2ff582c8c Implemented hb_subset_cff2
Added serialize functions to CFF2 structs
Fixed issues & bugs & code cleanup
Now subsetting CFF2 table outputs something
2018-08-01 11:30:38 -07:00
Michiharu Ariza
9c4cadaef0 Added sanitize functions & calls
Added sanitize functions to FDSelect
Added satnitize calls for FDSelect, VariationStore, FDArray, TopDict
2018-07-30 14:28:40 -07:00
Michiharu Ariza
3a61c3e935 first push of CFF/CFF2 work
Index, Dict structs
hooked up to hb-subset (takes CFF2, outputs empty CFF2)
2018-07-18 14:17:52 -07:00