Michiharu Ariza
02ae2591d9
initialize return param subr_num in popSubrNum
...
also snake_cased popSubrtNum and other surrounding function names
2019-05-08 13:44:03 -07:00
Behdad Esfahbod
b986c6a321
[C++11] Remove IntType::set() in favor of operator=
2019-03-29 20:21:21 -07:00
Michiharu Ariza
f2908b4d8f
Implement subset --regain-gids option with CFF1/2
...
along with api tests & expected results
2019-01-31 14:16:37 -08:00
Garret Rieger
846e05a298
[subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
2019-01-29 13:19:21 -08:00
Behdad Esfahbod
a5e5dd8b42
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
2019-01-22 16:30:07 +01: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
b6903bd6c4
ensure fdmap initialized as identity for single-FD (non-CID) fonts
2018-11-16 13:46:58 -08:00
Michiharu Ariza
9d0231cfe7
fixed a subset bug when no font dicts reduce
2018-11-15 15:39:43 -08:00
Michiharu Ariza
0dfa584cb4
changed Adobe company name
2018-11-12 08:47:07 -08:00
Michiharu Ariza
0996c0ff62
implented no-desubroutinize with CFF2 along with API test
...
replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy
replaced expected results as well
2018-11-07 14:48:37 -08:00
Michiharu Ariza
2840a104c1
tweaks to build with new merge
2018-11-01 16:18:13 -07:00
Michiharu Ariza
82248b9287
fix leak attempt ^2
2018-11-01 10:36:50 -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
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
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
5b453f77f8
fixed off-by-one error with offSize
2018-09-11 16:20:39 -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
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
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
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
f57d6bcbca
renamed CFF::Index to CFF::CFFIndex
...
to avoid confusion with OT::Index
2018-08-16 08:03:46 -07:00
Michiharu Ariza
867f68bd8a
fix build attempt ^7
2018-08-15 15:53:50 -07:00
Michiharu Ariza
685db67bb0
fix build attempt ^6
2018-08-15 15:45:17 -07:00
Michiharu Ariza
2810caafeb
fix build attempt ^5
2018-08-15 15:30:24 -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
a97ed342d1
fixed inclusion of excluded Private & local Subrs
...
It was bloating a multi-FD subset font unnecessarily
defined a wrapper struct FDMap for fdmap
2018-08-10 12:55:22 -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
9fae33b9f3
Silence Codacy
2018-08-06 10:44:12 -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
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