Commit Graph

106 Commits

Author SHA1 Message Date
Michiharu Ariza 7b48641aa8 fix leak in subset_enc_supp_codes (#1537)
oss-fuzz issue 12310
2019-01-08 15:37:48 -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 21163c30e9.

* fix tabs
2018-12-22 10:47:04 -05:00
Behdad Esfahbod 474a12058d [array/vector] Rename len to length 2018-12-21 18:53:01 -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
Michiharu Ariza 2941208f1e [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
2018-12-11 15:21:24 -05:00
Michiharu Ariza 333586245c minimize use of assert: removed or changed to error handling (#1467) 2018-12-11 15:20:20 -05: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 d8c6913765 undo 0u 2018-11-30 18:58:14 -08:00
Michiharu Ariza 9483da145d redo fixes 2018-11-30 16:59:41 -08:00
Michiharu Ariza b1821b9d09 some more 2018-11-30 16:31:01 -08:00
Michiharu Ariza a6da9b9415 fixed Charset format selection 2018-11-16 17:29:03 -08:00
Michiharu Ariza b6903bd6c4 ensure fdmap initialized as identity for single-FD (non-CID) fonts 2018-11-16 13:46:58 -08:00
Michiharu Ariza b67a7c731f drop dotsection as hint along with test case 2018-11-16 12:28:24 -08:00
Michiharu Ariza 9d0231cfe7 fixed a subset bug when no font dicts reduce 2018-11-15 15:39:43 -08:00
Michiharu Ariza ecdb77f0ae fixed CFF1 subset of std encoding & non-std charset combo 2018-11-15 10:54:15 -08:00
Michiharu Ariza 0dfa584cb4 changed Adobe company name 2018-11-12 08:47:07 -08:00
Michiharu Ariza 191ca0f15b 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
2018-11-03 22:42:22 -07:00
Michiharu Ariza 1da4de7e7b fix for subset fuzzer failure
A called subr must be freshly parsed or completely parsed. otherwise the prevoius parse must have terminated prematurely
2018-11-03 15:41:29 -07:00
Michiharu Ariza 481fdfdc23 Merge branch 'cff-subset' of https://github.com/harfbuzz/harfbuzz into cff-subset 2018-11-02 15:28:09 -07:00
Michiharu Ariza 1bc710a8c9 added CFF1 desubr api test cases & bug fixes 2018-11-02 15:28:01 -07:00
Michiharu Ariza 6186dbf1be added hb_subset_input_set_desubroutinize API
hooked up with CFF1 subroutinizer
a renaming
2018-11-01 17:25:23 -07:00
Michiharu Ariza 2840a104c1 tweaks to build with new merge 2018-11-01 16:18:13 -07:00
Michiharu Ariza a9c305c2b0 fix leaks 2018-11-01 10:31:21 -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 8679d02b4b 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
2018-10-18 13:04:21 -07:00
Michiharu Ariza 9228db06f4 added CFF1 Expert Encoding subset test & bug fixes 2018-10-13 17:25:09 -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 d7b384ad0d silence warning ^3 2018-10-02 21:08:36 -07:00
Michiharu Ariza e9cc71ac86 silence warning ^2 2018-10-02 20:44:30 -07:00
Michiharu Ariza 51d5bf4ca2 silence warnings 2018-10-02 14:38:06 -07:00
Michiharu Ariza 35b64dfb57 silence & fix new warnings 2018-10-02 14:13:36 -07:00
Michiharu Ariza ebeccf3e63 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
2018-09-18 17:24:30 -07:00
Michiharu Ariza c0c85b852d implemented get_glyph_extents with CFF1
Implemented path operators in a new struct PathProc hooked up to CSOpSet
Added current point to CSInterpEnv
2018-09-17 11:14:56 -07:00
Michiharu Ariza 0f159a38a6 fixed serialize_fdselect_3_4 2018-09-12 16:08:54 -07:00
Michiharu Ariza 1608481d88 fixed bugs in Charset serialization
also some code cleanup
2018-09-12 13:22:19 -07:00
Michiharu Ariza 5b453f77f8 fixed off-by-one error with offSize 2018-09-11 16:20:39 -07:00
Michiharu Ariza c6f75c3049 fix build attempt 2018-09-10 17:02:31 -07:00
Michiharu Ariza cc52e53cf0 Removed unused subr subset code 2018-09-10 16:27:49 -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 2a74536aae fix build attempt ^2
Added hb-ot-cff1-table.cc to hb-subset sources
Deleted unused variable (charset)
2018-09-06 18:26:13 -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 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 8c5e03b541 Added drop_hints to SubrFlattener 2018-08-30 17:21:56 -07:00
Michiharu Ariza 9fd08cc238 CFF2 subroutine flattner
Factored out CFF1 & CFF2 common subsetting code in hb-subset-cff-common.hh
2018-08-29 18:18:18 -07:00
Michiharu Ariza b95bf075d7 fix build attempt ^2 2018-08-29 14:41:52 -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 0ad081ec32 attempt to fix build failure 2018-08-29 12:56:48 -07:00
Michiharu Ariza a11420b48c 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
2018-08-29 12:14:30 -07:00
Michiharu Ariza 5cde2f55cd drop hints from CFF & CFF2 Private 2018-08-17 16:50:13 -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 e67bb3fbcf renamed OT::cff to OT::cff1 for consistency
along with HB_OT_TAG_cff1
2018-08-16 00:25:57 -07:00
Michiharu Ariza fdbfa1848b renamed CFF version 1 structs and sources to CFF1 from CFF
"CFF" is used for shared structs & sources between CFF1 & CFF2
except OT:cff is for CFF version 1 table
2018-08-16 00:13:09 -07:00