Behdad Esfahbod
67794827ff
[TupleVariation] Use defaultdict in compileSharedTuples
2021-04-08 11:56:36 -06:00
Behdad Esfahbod
9b379bbb87
[TupleVariation] Further optimize compileCoord()
2021-04-08 11:51:15 -06:00
Behdad Esfahbod
48e827aa21
[TupleVariation] Minor optimization in compileCoord()
2021-04-08 11:46:32 -06:00
Behdad Esfahbod
416ff89171
[TupleVariation] Minor optimize in using sharedCoordinates
2021-04-08 11:40:44 -06:00
Behdad Esfahbod
f40ca25726
[GlyphCoordinates] Remove isFloat() again
...
Based on subsequent review feedback.
2021-04-08 11:22:08 -06:00
Behdad Esfahbod
80069e9608
[py23] Make tobytes() always return bytes even for bytearray
2021-04-08 11:13:15 -06:00
Behdad Esfahbod
ec80f24315
[TupleVariation] Remove use of bytesjoin()
2021-04-08 11:11:50 -06:00
Behdad Esfahbod
f8d54b1ebb
[TupleVariation] Minor rewrite bound checks
2021-04-08 11:01:20 -06:00
Behdad Esfahbod
faaac34acf
[GlyphCoordinates] Add back isFloat() and deprecate it
2021-04-08 10:58:58 -06:00
Behdad Esfahbod
c206341bb0
[GlyphCoordinates] Inline _i()
2021-04-08 10:52:40 -06:00
Behdad Esfahbod
645a3eb104
[GlyphCoordinates] Use float.is_integer()
2021-04-08 10:43:20 -06:00
Behdad Esfahbod
c5e3fca636
[GlyphCoordinates] Format
2021-04-08 09:48:35 -06:00
Behdad Esfahbod
5c815a6def
[TupleVariation] Do away with another bytesjoin()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
a715f57130
[TupleVariation] Optimize compilePoints()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
6abf8680b4
[TupleVariation] More bytes optimization
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
250e59886f
[TupleVariation] Micro-optimize away a lambda
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
62a89bc3d5
[TupleVariations] Optimize serialization loops
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
b1b672e17e
[TupleVariation] Remove a few hot asserts
...
We verify the code instead.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
4cbf6ae1c4
[TupleVariation] Minor
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
d5d771b2bf
[TupleVariation] Use array.array to serialize multiple deltas
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
1e6b20cc2c
[TupleVariation] Don't round deltas (again!)
...
Remove tests that passed float in.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
9405244617
[TupleVariation] Use bytearray() instead of io.Bytes()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
869f00507b
[glyf] Use bytearray() instead of array.array('B') for flags
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
db918e3355
[glyf] Use bytearray() in trim()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
3a80b56829
[py23] Change tobytes() to accept bytearray
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
33d9e3d6de
[subset] Use bytearray() instead of array.array('B')
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
492118c7b5
[subset] Set glyph.data to b'' instead of ''
...
Fixes tests after 7adbe44154c1bd8a99668512e88facbcb034f05f
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
bbbc877af9
[glyf] Remove several bytes slicings
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
8284af6b61
[TupleVariation] Use list(coordinates) instead of coordinates[:]
...
The latter is more expensive in GlyphCoordinates().
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
c23a540d07
[GlyphCoordinates] Micro-optimize _i() access
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
b5af979fbd
[glyf] Minor
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
1f3c23e62b
[glyf] Remove most use of py23 byteord etc
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
693bf0457a
[glyf] Remove reprflag()
...
If compatibility is an issue, we should rewrite it in terms of "bin(flag)".
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
9be029c0cc
[glyf] Remove unnecessary use of byteord()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
fb196fdf7d
[glyf] Avoid a copy during decompile of flags
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
e328ee0254
[glyf] Use memoryview() in decompile for larger glyphs
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
4ff6b3390e
[glyf] Use bytearray() when compiling
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
3252ed10ee
[GlyphCoordinates] Remove unused .isFloat()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
b63b8ceb8b
[GlyphCoordinates] Remove internal dual representation
...
Always store coordinates as float. Convert to int in __getitem__() if is whole.
This changes observed values. But we never made any guarantees so that's fine.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
acc56bdf72
[GlyphCoordinates] Faster .zeros()
...
Using .frombytes() since bytes() constructor can make zeros fast.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
7ef101ccb1
[GlyphCoordinates] Speed up .zeros()
...
Such a pain that this is a speedup...
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
f6e8577476
[GlyphCoordinates] Revert back from double to float
...
We do proper rounding these days, so revert this back.
https://github.com/fonttools/fonttools/pull/964#issuecomment-814511128
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
e9acd9634f
[GlyphCoordinates] Store int data as 4byte, not 2byte
...
The memory increase is negligible, but means that we don't have to
worry about integer overflows anymore.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
8be2f49b84
[GlyphCoordinates] Speed up __imul__()
...
Like the recent change to __isub__/__iadd__().
This, as well as the other, change do not handle overflows.
Going to fix that now.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
96690de9a9
[varLib] Optimize out multiplication by 1 when computing deltas
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
77abdad0f7
[GlyphCoordinates] Move identity check to scale() / translate()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
45e94ff2bd
[GlyphCoordinates] Speed up __isub__() and __iadd__()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
3892ece50c
[GlyphCoordinates] Remove Jython workaround
2021-04-08 09:41:45 -06:00
Khaled Hosny
cbb33d8aa9
Merge pull request #2259 from fonttools/subset-cpal-0xFFFF
...
subset: fix pruning unused CPAL palettes when 0xFFFF is present
2021-04-06 22:22:46 +02:00
Cosimo Lupo
2136aac0f0
subset: fix pruning unused CPAL palettes when 0xFFFF is present
...
FIxes https://github.com/fonttools/fonttools/issues/2257
2021-04-06 19:43:45 +01:00