rsheeter
96de94768b
Merge pull request #1722 from googlefonts/glyf
...
[subset] Use iterators in glyf/loca subsetting
2019-05-24 11:22:41 -07:00
Rod Sheeter
1197bef26c
[subset] Per code review, use hb_array to avoid duplicated type name
2019-05-24 10:52:49 -07:00
Rod Sheeter
13b3cd307e
[subset] Address @behdad review feedback
2019-05-24 10:10:12 -07:00
Behdad Esfahbod
226ab06ec1
[ucd] Add URL to dependencies
2019-05-23 20:39:04 -04:00
Behdad Esfahbod
65392b734e
[ucdn] Replace UCDN with a new UCD implementation
...
UCDN was ~120kb of data. New implementatoin is 69kb in default builds,
and 49kb if built with HB_OPTIMIZE_SIZE or __OPTIMIZE_SIZE__. The
latter automatically enabled if built with -Os or -Oz.
There's room to shave off another 10kb or 20kb. That will follow later.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-23 20:34:19 -04:00
Behdad Esfahbod
12c59f6c40
[deprecated] Minor
2019-05-23 20:34:19 -04:00
Behdad Esfahbod
36dee9221f
[gen-ucd] Rename
2019-05-23 20:34:19 -04:00
Behdad Esfahbod
831c213501
[gen-ucd] Minor
2019-05-23 20:34:19 -04:00
Garret Rieger
ff7fc6d488
[subset] Add morx, mort, kern, and kernx to the default layout tables drop list.
2019-05-22 17:36:16 -07:00
Qunxin Liu
993d81b9c5
[subset] Add one ttf file with fvar/STAT tables to integration test
...
Ignore gvar/MVAR/HVAR table
add support for --nameIDs=* option
2019-05-22 17:20:45 -07:00
Rod Sheeter
58ce477ac1
[subset] Report failure more often
2019-05-21 20:22:40 -07:00
Rod Sheeter
14e3b0cf41
[subset] Code review feedback
2019-05-21 20:09:36 -07:00
Behdad Esfahbod
a03ed95e7d
[gen-ucd] Generate decomposition tables
...
Code is ugly. Ugh.
2019-05-21 16:43:39 -04:00
Behdad Esfahbod
8a48c88fa9
[gen-ucd] Comment
2019-05-21 16:43:39 -04:00
Behdad Esfahbod
b71d353cee
[gen-ucd] Remove some code
2019-05-21 16:43:39 -04:00
Rod Sheeter
4ea44112b5
[subset] Remove missed reference to hb-subset-glyf, was deleted
2019-05-21 13:07:43 -07:00
Garret Rieger
0af9de13b7
[subset] For gsub subsetting only consider glyphs reachable via gsub closure.
2019-05-21 13:02:11 -07:00
Rod Sheeter
349d692b0e
[subset] Iter in and out for loca
2019-05-21 12:38:53 -07:00
Rod Sheeter
95445d79be
[subset] Write loca using more idiomatic harfbuzzese
2019-05-21 11:14:31 -07:00
Rod Sheeter
d1b12a5465
Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf
2019-05-20 21:29:54 -07:00
Rod Sheeter
3a43603ece
[subset] Fix memory leak caused by failure to cleanup glyf accelerator
2019-05-20 21:25:42 -07:00
Rod Sheeter
5cedda5e4a
[subset] Fix null pointer deref, tidy up a bit
2019-05-20 21:25:42 -07:00
Rod Sheeter
8a84b540c7
[subset] Tests passing using iterator based glyf
2019-05-20 21:25:42 -07:00
Rod Sheeter
82bbec3063
Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf
2019-05-20 21:25:42 -07:00
rsheeter
9d09ac13a1
[subset] Tweak hint stripping
2019-05-20 21:25:42 -07:00
rsheeter
3a4c928fcf
[subset] Fix glyf tests except hint stripping & local test asan
2019-05-20 21:25:42 -07:00
Rod Sheeter
b77dde8f13
[subset] Destroy blob
2019-05-20 21:25:35 -07:00
Rod Sheeter
14db6512f8
[subset] Correct flipped use short computation
2019-05-20 21:25:29 -07:00
Rod Sheeter
ab3fe5de2b
[subset] Glyf by iter now runs but fails tests
2019-05-20 21:25:16 -07:00
rsheeter
0d7fef2d50
[subset] Dinner time, checkpoint
2019-05-20 21:25:11 -07:00
rsheeter
240bc86e3a
[subset] Remove subset-glyf; want everything to point to new iter-based edition. Some of the code will resurface as impl builds out.
2019-05-20 21:25:05 -07:00
rsheeter
02d4d4f3e6
[subset] Starting to sketch glyf as iter
2019-05-20 21:24:59 -07:00
Behdad Esfahbod
1aadd1449c
[gen-ucd] Generate script order table
2019-05-20 17:29:27 -04:00
Behdad Esfahbod
be8de18867
[gen-ucd] Start adding script-order
2019-05-20 17:29:27 -04:00
Behdad Esfahbod
4a0eb066fd
[gen-ucd] Add gc order
2019-05-20 17:29:27 -04:00
Behdad Esfahbod
d1f9b2f961
[gen-ucd] Flesh out a bit more
2019-05-20 17:29:27 -04:00
Behdad Esfahbod
d6de4659aa
Add HB_OPTIMIZE_SIZE
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-20 17:29:27 -04:00
Garret Rieger
0ff3618c2d
[subset] Use hb_subset_input_t inside of subset_options_t so that input defaults are shared between the library and cli.
2019-05-20 13:35:46 -07:00
Garret Rieger
3be0ffe45d
[subset] Add drop tables to subset input.
2019-05-20 13:35:46 -07:00
Behdad Esfahbod
0ca7ad4352
[cff] Fix unlikely invocations
2019-05-20 11:39:07 -04:00
Behdad Esfahbod
3efb7af7e2
[STAT] Fix sanitize condition
...
Oops!
Fixes https://oss-fuzz.com/testcase-detail/5696825891225600
2019-05-20 11:37:16 -04:00
Ebrahim Byagowi
e66eb21a46
Don't set _POSIX_C_SOURCE in NetBSD
...
According to a harfbuzz package patch on NetBSD project
https://github.com/NetBSD/pkgsrc/blob/trunk/fonts/harfbuzz/patches/patch-src_hb-blob.cc
2019-05-18 07:44:48 -07:00
Behdad Esfahbod
08c3648c6e
Oops, fix include
2019-05-17 16:21:34 -07:00
Behdad Esfahbod
24958b8868
[set] Use StructAtOffsetUnaligned
2019-05-17 16:20:36 -07:00
Behdad Esfahbod
b7be59311f
Fix msan issue
...
The fact that HB_AUTO_RETURN will return rvalue-references for rvalues
is very disturbing.
Even apart from that, I'm totally lost re any hb_move needs or
hb_forward'ing to functions/templates where the type is fixed by
explicitly specifying template parameters.
==1==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f6ad65e51e0 at pc 0x0000005da240 bp 0x7ffc104ab670 sp 0x7ffc104ab668
READ of size 4 at 0x7f6ad65e51e0 thread T0
SCARINESS: 55 (4-byte-read-stack-use-after-return)
#0 0x5da23f in bool OT::Coverage::serialize<hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, (void*)0>(hb_serialize_context_t*, hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>) harfbuzz/src/hb-ot-layout-common.hh:1055:16
#1 0x5d88f9 in bool OT::SingleSubstFormat1::serialize<hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, (void*)0>(hb_serialize_context_t*, hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, unsigned int) harfbuzz/src/hb-ot-layout-gsub-table.hh:98:9
2019-05-16 13:34:19 -07:00
Behdad Esfahbod
bcd3ffc948
Whitespace
2019-05-16 13:27:08 -07:00
Behdad Esfahbod
05bc5f96fb
[subset] Remove extra iteration
2019-05-16 13:05:58 -07:00
Garret Rieger
6555f20958
[subset] Truncate empty gids at the end in retain-gids mode.
2019-05-16 10:34:53 -07:00
Behdad Esfahbod
2376867649
Use hb_map(hb_add(this)) to dereference OffsetTo<>'s
2019-05-15 22:01:44 -07:00
Behdad Esfahbod
6f51e55524
[algs] Rename hb_bind to hb_partial
...
Since our API is the invers of what std::bind is, and closer to Python
functools.partial().
2019-05-15 21:41:12 -07:00
Behdad Esfahbod
0888e7bc86
[algs] Change hb_bind parameter number to be from one
...
To match std:;bind, even though our interfaces are very different.
2019-05-15 21:36:42 -07:00
Behdad Esfahbod
dfa5e42971
Add back symmetric OffsetTo<>::friend operator+
...
Finally seems to be working now.
2019-05-15 21:18:14 -07:00
Behdad Esfahbod
a06a236891
[algs] Partialize all operators
2019-05-15 21:16:09 -07:00
Behdad Esfahbod
edc69ec935
[algs] Rewrite bind API
...
And add a partialization API use example to hb_add()
2019-05-15 21:09:56 -07:00
Behdad Esfahbod
16a3540ea4
[algs] Add hb_bind0 and hb_bind1
2019-05-15 20:48:20 -07:00
Behdad Esfahbod
d214b07883
Fix clang build
...
Ugh.
In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
2019-05-15 19:07:39 -07:00
Behdad Esfahbod
371b55c7a0
Fix clang build
...
In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
1 error generated.
2019-05-15 19:04:24 -07:00
Behdad Esfahbod
243a5a6af2
[algs] Remove pair copy constructor
...
Use default.
2019-05-15 19:04:24 -07:00
Behdad Esfahbod
f92d188d77
Whitespace
2019-05-15 18:52:57 -07:00
Garret Rieger
962f95cf80
[subset] Switch SingleSubst to use iterators in serialize.
2019-05-15 18:37:32 -07:00
Behdad Esfahbod
78d35f0e78
Reduce captures of lambdas
2019-05-15 18:15:05 -07:00
Behdad Esfahbod
5266ca86b6
Fix tests
...
Oops.
2019-05-15 17:59:00 -07:00
Behdad Esfahbod
5da8a3a90d
Remove variadic form of hb_min/hb_max
...
Unused, and why here and not in other functions...
2019-05-15 17:11:18 -07:00
Behdad Esfahbod
e5cfe9d582
Add arithmetic operators
2019-05-15 16:59:36 -07:00
Behdad Esfahbod
f7a458510d
Add hb_bitwise_* ops
2019-05-15 16:53:12 -07:00
Behdad Esfahbod
d822e0a16f
[array] Adjust operator!=
...
See comments.
2019-05-15 16:30:08 -07:00
Behdad Esfahbod
203ea58bf6
More adjustment to OffsetTo<>::friend opeator+
...
Let's see if I break any bots. But yeah, it wasn't accepting a
non-const pointer. It just happens that we don't use that in the
code it seems.
2019-05-15 16:14:40 -07:00
Behdad Esfahbod
ebf47a95f2
[iter] Simplify operator!= of iterator filters
...
Both to save ops, and also because lambdas don't implement operator!=,
so this was failing in range-based for loop if a lambda was passed to
hb_map() or hb_filter(). Just check end-condition assuming that we
are comparing to .end() or iterators that are otherwise derived from
current iterator. Ie. don't compare things that are expected to be
in common.
2019-05-15 15:14:26 -07:00
Behdad Esfahbod
d3e1d5044f
Add all pair_t comparison operators
2019-05-15 14:34:36 -07:00
Behdad Esfahbod
f244224dbb
[iter] Use default operators instead of redefining empty ones
2019-05-15 14:34:36 -07:00
David Corbett
125c45ed36
Convert Consonant_Initial_Postfixed to CONS_MED
2019-05-15 14:34:25 -07:00
Ebrahim Byagowi
e2767e438c
[ci][test] Ignore other gcov symbols also
...
To fix https://travis-ci.org/harfbuzz/harfbuzz/jobs/532693197
2019-05-15 13:14:09 +04:30
Behdad Esfahbod
763ea4224b
Another try
2019-05-15 01:21:32 -07:00
Behdad Esfahbod
e1b2edb04a
Completely revert the thing back
2019-05-15 01:12:04 -07:00
Behdad Esfahbod
c58eeb5fb3
Another try at fix
...
Fails locally. Trying to understand. Sigh
2019-05-15 01:10:31 -07:00
Behdad Esfahbod
004edf3bda
Ugh. How was the Travis bot happy before, but isn't now?! :(
2019-05-15 01:02:50 -07:00
Behdad Esfahbod
e01c7b1648
Move OffsetTo operator+ back out of class
...
Apparently there's different overload resolution rules that apply, at
least with some (older?) version of gcc.
hb-ot-name-table.hh: In member function ‘void OT::name::accelerator_t::init(hb_face_t*)’:
hb-ot-name-table.hh:244:62: error: ambiguous overload for ‘operator+’ (operand types are ‘hb_blob_ptr_t<OT::name>’ and ‘OT::NNOffsetTo<OT::UnsizedArrayOf<OT::IntType<unsigned char, 1u> > > {aka const OT::OffsetTo<OT::UnsizedArrayOf<OT::IntType<unsigned char, 1u> >, OT::IntType<short unsigned int, 2u>, false>}’)
this->pool = (const char *) (const void *) (this->table+this->table->stringOffset);
^
hb-ot-name-table.hh:244:62: note: candidates are:
hb-ot-name-table.hh:244:62: note: operator+(const C*, long int) <built-in>
hb-ot-name-table.hh:244:62: note: operator+(const char*, long int) <built-in>
2019-05-15 00:52:17 -07:00
Behdad Esfahbod
b213042f87
Revert "Revert symmetric OffsetTo overloads"
...
This reverts commit 01912efb74
.
Actually this didn't break things. Fixing
2019-05-15 00:50:48 -07:00
Behdad Esfahbod
01912efb74
Revert symmetric OffsetTo overloads
...
Reverts 57f65ae935
Caused ambiguous-overload on some gcc...
2019-05-15 00:42:47 -07:00
Behdad Esfahbod
d0df996cdc
Use implicit lambda return type
2019-05-15 00:32:41 -07:00
Behdad Esfahbod
57f65ae935
Add symmetric friend operator+ for OffsetTo
2019-05-14 22:52:59 -07:00
Behdad Esfahbod
71208e5047
Move OffsetTo<> deref operators in-class as friends
2019-05-14 22:51:59 -07:00
Behdad Esfahbod
e6d6f4b96d
Whitespace
2019-05-14 22:46:31 -07:00
Behdad Esfahbod
889dc1eb06
[iter] Remove sort categorization
...
See comments.
2019-05-14 22:28:07 -07:00
Behdad Esfahbod
b4eff38397
Start of gen-ucd.py, to replace UCDN
2019-05-14 14:44:27 -07:00
Qunxin Liu
02e5e5d939
[subset] retian nameids from STAT and fvar tables
2019-05-14 14:44:17 -07:00
Behdad Esfahbod
ff7995200e
Hopefully last warning fix
2019-05-14 07:44:03 -07:00
Ebrahim Byagowi
9e7c9c3adb
Fix -Wunused-function on HB_NO_SHAPE_AAT
...
We should add a bot for it
Part of #1652
2019-05-14 15:58:51 +04:30
Dominik Röttsches
c73d7ba75d
Fix building with HB_NO_SUBSET_LAYOUT
...
Fixes an unused function warning when building with HB_NO_SUBSET_LAYOUT
as part of the Chrome build.
2019-05-14 13:31:44 +03:00
Behdad Esfahbod
f39934983f
[ucdn] Fix Hangul composition
...
https://github.com/grigorig/ucdn/issues/23
2019-05-14 00:13:21 -07:00
Behdad Esfahbod
b2ab15a78c
Fix more warnings
2019-05-13 23:47:28 -07:00
Behdad Esfahbod
42ae468a8a
[config] Add NDEBUG and HB_NDEBUG
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-13 23:43:45 -07:00
Behdad Esfahbod
0a01deb76f
One more warning fix
...
No idea where these appear from...
2019-05-13 18:04:09 -07:00
Behdad Esfahbod
f76e9f2ede
[icu] Comment
2019-05-13 17:39:46 -07:00
Behdad Esfahbod
70fe9e7355
Fix moreeeeeeeeeee
2019-05-13 17:35:02 -07:00
Behdad Esfahbod
68e12e68f8
Fix more semi-colon issues
2019-05-13 17:28:59 -07:00
Behdad Esfahbod
4d3cf2adb6
[iter] Fix zip iterator sortedness classification logic
2019-05-13 17:25:07 -07:00
Behdad Esfahbod
c572732f29
Fix more excess semi-colon errors
2019-05-13 15:41:09 -07:00
Behdad Esfahbod
513762849a
[iter] Track strictly-sorted iterators
...
This make output of hb_enumerate() sorted regardless of input iterator.
2019-05-13 15:36:14 -07:00
Behdad Esfahbod
7e02063f32
[iter] Minor
2019-05-13 15:26:00 -07:00