Ebrahim Byagowi
d80a3ea983
[cff] Implement in-house power of 10
...
A minimal power only for natural numbers exponents of ten, for portability.
Found the idea in Tcl/Tk but wrote it myself after weeks and it turned out
being a different implementation, reverse direction, constexpr, etc.
2019-09-01 14:05:16 +04:30
Ebrahim Byagowi
f441a7c008
Don't allow reference blob be accessed using empty tag in hb_face_reference_table ( #1947 )
2019-08-31 16:48:09 -05:00
Behdad Esfahbod
c9eb913f4c
[iter] Simplify hb_chop()
2019-08-31 15:21:02 -05:00
Behdad Esfahbod
67ec9fa9e4
[iter] Add hb_chop()
2019-08-31 14:51:49 -05:00
Behdad Esfahbod
5828d8e83c
[iter] Add hb_take() specialization for arrays
2019-08-31 14:36:44 -05:00
Behdad Esfahbod
398b296f3b
[iter] Add hb_len()
2019-08-31 12:44:24 -05:00
Behdad Esfahbod
875131d478
[iter] Add hb_take()
2019-08-31 12:42:52 -05:00
Behdad Esfahbod
1f88dae9f5
[iter] Make iota() accept invokable for increasing to next item
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
3bc86fb237
[algs] Fix hb_inc/dec signature
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
b1378d8a21
[iter] Add hb_repeat()
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
966a18b92a
[iter] Remove some &&
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
de45775c37
[iter] Use hb_ridentity instead of lazy +
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
ce4d63beec
[iter] Separate hb_iota implementation from hb_range
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
814dc3cbe5
[iter] Rename
...
Moving towards making iota useful for non-integers.
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
2d5643aed4
[algs] Add hb_inc() and hb_dec())
2019-08-31 12:24:56 -05:00
Behdad Esfahbod
7eafe94705
Revert "[array] Add chop()"
...
This reverts commit 545fe9d9f0
.
Breaks gcc 4.8 and MSVC all versions.
Will add hb_chop() that works on all iterators instead.
2019-08-31 12:24:56 -05:00
Ebrahim Byagowi
28c8dcb53f
[subset] minor
2019-08-31 12:27:14 +04:30
Behdad Esfahbod
545fe9d9f0
[array] Add chop()
...
Takes n, and returns iterator of iterators that contain up to
n items each. Basically cuts the array into subarrays of size n.
The last sub-array might contain fewer.
Ideally this should become a generic iter tool, not array-specific,
so we can use it in GPOS to chop a value matrix into rows and elements.
2019-08-29 15:48:21 -07:00
Behdad Esfahbod
c72589f13f
[iter] Change item_size to get_item_size()
...
By moving access to hb_static_size(Type) into a function instead of
a class-const, we can refer to iter types of incomplete types, which
come handy when a method of hb_array_t wants to return iterator
of hb_array_t. That kind of stuff. Next commit needs this to
build on clang...
2019-08-29 15:45:21 -07:00
Behdad Esfahbod
d58e248df6
[array] Add truncate() method
2019-08-29 15:23:48 -07:00
Behdad Esfahbod
a06edf1430
[array] Use injected class name more
2019-08-29 15:21:18 -07:00
Behdad Esfahbod
e0e0c8c109
Minor
2019-08-29 14:58:16 -07:00
qxliu76
0313ef86e3
bug fix in optimizing coverage table format ( #1942 )
...
We are comparing number of shorts, NOT number of bytes.
2019-08-29 14:09:05 -07:00
Behdad Esfahbod
38f95baf6b
[subset] in SingleSubst subsetting, check for substitute in glyphset
...
That matches what fonttools does and allows for specifying exact
glyphset for subset.
2019-08-29 13:40:46 -07:00
Ebrahim Byagowi
499029644f
[gsub] Fix clang's semicolon complains
2019-08-29 15:09:39 +04:30
Ebrahim Byagowi
28620310b8
[test] Avoid alloca use as clang complain
...
Fixes https://circleci.com/gh/harfbuzz/harfbuzz/108171 complain
2019-08-29 14:55:54 +04:30
Ebrahim Byagowi
875985cd48
[subset] Don't allow malicious fonts to insert unlimited table headers
...
Fixes https://crbug.com/oss-fuzz/16810
2019-08-29 14:51:22 +04:30
Behdad Esfahbod
dc9222b1dd
[subset] Implement AlternateSubst subsetting
2019-08-28 15:38:46 -07:00
Behdad Esfahbod
23681b6da4
Minor
2019-08-28 15:30:37 -07:00
Behdad Esfahbod
33c8e2303c
[subset] Implement MultipleSubst subsetting
2019-08-28 15:25:55 -07:00
Behdad Esfahbod
5c43a7ba7e
[GSUB] Use dagger in Ligature::intersects()
2019-08-28 15:10:38 -07:00
Behdad Esfahbod
b8c642c1f5
Minor
2019-08-28 15:06:45 -07:00
Behdad Esfahbod
dc2c9aa0c3
Rename
2019-08-28 15:05:49 -07:00
Behdad Esfahbod
bc5ef765a8
[subset] Subset ligature substitutes!
...
Test with:
$ ./hb-subset -o out.ttf NotoSansArabic-Regular.ttf --drop-tables= سلام && ./hb-view out.ttf سلام
2019-08-28 14:52:13 -07:00
Behdad Esfahbod
42d887bd22
Beef up HeadlessArrayOf<>
...
Should be merged with ArrayOf...
https://github.com/harfbuzz/harfbuzz/issues/1937
2019-08-28 14:47:14 -07:00
Behdad Esfahbod
3ca809e362
Add ArrayOf::pop()
2019-08-28 13:49:35 -07:00
Behdad Esfahbod
307bd6d79f
Add arithmetic operators to IntType<>
2019-08-28 13:49:17 -07:00
Behdad Esfahbod
2e1d00c85b
[debug] Minor
2019-08-28 13:49:04 -07:00
Behdad Esfahbod
062cad5e28
Add ArrayOf::serialize_append
2019-08-28 13:48:55 -07:00
Adrian Wong
b66076812d
Adjustments to the generated Indic table output ( #1936 )
...
* Add empty parentheses after print call
* Minor: newlines. Move #pragma pop down one; #endif up one
* Adjust #define ISC/IMC output
* Regenerate Indic table
2019-08-28 04:31:27 -07:00
Ebrahim Byagowi
4ef08dbce1
Use hb_bytes_t as<T> in hb_blob_t
2019-08-27 17:38:09 +04:30
Ebrahim Byagowi
dce42cef2b
[glyf] Move GlyphHeader::from_bytes to hb_bytes_t, introduce .as<T> ()
2019-08-27 17:38:09 +04:30
Ebrahim Byagowi
6e82d59b4f
[glyf] Revert the way indexToLocFormat is set
2019-08-27 12:33:42 +04:30
Ebrahim Byagowi
88e9db19d2
[subset] Remove subset table size assertion
...
As https://github.com/harfbuzz/harfbuzz/pull/1930#issuecomment-525036802
2019-08-27 02:44:26 +04:30
Ebrahim Byagowi
a0b4ac4dce
Turn 8 spaces to tab across the project
...
According to the current code style of the project
2019-08-27 02:40:41 +04:30
Ebrahim Byagowi
269a120f13
[subset] Raise the bar in new vs old table size
...
https://crbug.com/oss-fuzz/16740
This is actually an interesting thing that {h,v}mtx allocates as
much as a font pretends to have glyphs but the solution is not
that obvious as regular fonts can have less than actually containing
metrics in their {h,v}mtx. This change raises the bar to consider this
hmtx 4 byte for every glyph case.
Initially we wanted to just find things allocating crazy amount of
memory but having the assert has led to interesting findings also
so let's don't remove the assert and see what we can find elsewhere.
2019-08-25 20:37:00 +04:30
Ebrahim Byagowi
2f8e823331
[glyf] minor
2019-08-25 12:37:40 +04:30
Ebrahim Byagowi
07e467a30e
[glyf] Move GlyphHeader size checking to a static method
2019-08-25 01:10:37 +04:30
Ebrahim Byagowi
139d14dc89
[glyf] Move GlyphHeader related logics to its, making its fields protected
2019-08-24 17:50:25 +04:30
Ebrahim Byagowi
d57819cbdb
[glyf] format source
2019-08-24 17:00:54 +04:30