Commit Graph

9193 Commits

Author SHA1 Message Date
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
Rod Sheeter
f8de063b48 Merge branch 'glyf' of github.com:googlefonts/harfbuzz into glyf 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
rsheeter
8f174870e9 [subset] Dinner time, checkpoint 2019-05-20 21:22:58 -07:00
rsheeter
723d054dcb Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf 2019-05-20 21:22:58 -07:00
rsheeter
ed727d4bb7 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf 2019-05-20 21:22:58 -07:00
rsheeter
fb9bff955a [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:22:52 -07:00
rsheeter
f9b089b695 [subset] Starting to sketch glyf as iter 2019-05-20 21:22:44 -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
David Corbett
99ca956c13 Fix record-test.sh on machines without sha1sum 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
Ebrahim Byagowi
397cbbd5ff
[ci][travis] Update its distribution
It may break things, lets see
2019-05-15 13:03:28 +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