Behdad Esfahbod [Mon, 12 Nov 2018 23:48:10 +0000 (18:48 -0500)]
[shape-plan] Cache shape plans with variations based on variation indices
Behdad Esfahbod [Mon, 12 Nov 2018 23:18:20 +0000 (18:18 -0500)]
[shape-plan] Refactor more
Behdad Esfahbod [Mon, 12 Nov 2018 23:05:02 +0000 (18:05 -0500)]
[shape-plan] Only use shape-plan key to initialize hb_ot_shape_plan_t
Such that we don't accidentally use info not in the cache key.
Behdad Esfahbod [Mon, 12 Nov 2018 22:50:30 +0000 (17:50 -0500)]
[shape-plan] Minor
Behdad Esfahbod [Mon, 12 Nov 2018 22:49:15 +0000 (17:49 -0500)]
[shape-plan] Refactor some more
Behdad Esfahbod [Mon, 12 Nov 2018 22:27:34 +0000 (17:27 -0500)]
[shape-plan] Refactor more
Behdad Esfahbod [Mon, 12 Nov 2018 22:19:45 +0000 (17:19 -0500)]
[shape-plan] Turn hb_shape_plan_proposal_t into hb_shape_plan_key_t
And include it in hb_shape_plan_t itself.
Behdad Esfahbod [Mon, 12 Nov 2018 21:27:08 +0000 (16:27 -0500)]
Add hb_memcmp()
Behdad Esfahbod [Mon, 12 Nov 2018 21:15:26 +0000 (16:15 -0500)]
[shape-plan] Minor
Behdad Esfahbod [Mon, 12 Nov 2018 21:05:09 +0000 (16:05 -0500)]
[shaper] Rename
Behdad Esfahbod [Mon, 12 Nov 2018 19:25:18 +0000 (14:25 -0500)]
[fuzzing] Add new test
Behdad Esfahbod [Mon, 12 Nov 2018 19:24:36 +0000 (14:24 -0500)]
Rename check_array2() to check_array()
Behdad Esfahbod [Mon, 12 Nov 2018 19:23:31 +0000 (14:23 -0500)]
Rename check_array(array, a, b) to check_range()
Behdad Esfahbod [Mon, 12 Nov 2018 19:11:29 +0000 (14:11 -0500)]
[kerx] Fix integer overflow in multiply
Fixes https://oss-fuzz.com/v2/testcase-detail/
5754863779053568
Behdad Esfahbod [Mon, 12 Nov 2018 18:56:48 +0000 (13:56 -0500)]
[kerx] Minor tweak on previous commit
Behdad Esfahbod [Mon, 12 Nov 2018 18:21:14 +0000 (13:21 -0500)]
[fuzzing] Remove limited-edition build of libraries
Use normal, production, shared libraries.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1237
Behdad Esfahbod [Mon, 12 Nov 2018 18:01:22 +0000 (13:01 -0500)]
[kerx] Protect against stack underflow
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11367
Behdad Esfahbod [Mon, 12 Nov 2018 03:51:34 +0000 (22:51 -0500)]
[shape-plan] Minor
Behdad Esfahbod [Mon, 12 Nov 2018 03:38:05 +0000 (22:38 -0500)]
[shape-plan] Minor rename
Behdad Esfahbod [Mon, 12 Nov 2018 03:08:48 +0000 (22:08 -0500)]
Add variation coords to shape_plan proposal
This is the root cause of bug worked around in
19e77e01bc13f44138e1d50533327d314dd0a018.
Still no shape plan caching for variations though.
Behdad Esfahbod [Mon, 12 Nov 2018 03:03:15 +0000 (22:03 -0500)]
Minor
Behdad Esfahbod [Mon, 12 Nov 2018 02:32:01 +0000 (21:32 -0500)]
Embed hb_ot_shape_plan_t into hb_shape_plan_t
No other shaper will need shape_plan_data, by definition. So, remove
abstraction layer and always create hb_ot_shape_plan_t as part of
hb_shape_plan_t.
Behdad Esfahbod [Sun, 11 Nov 2018 22:10:23 +0000 (17:10 -0500)]
Remove wrong comment
Behdad Esfahbod [Sun, 11 Nov 2018 21:47:52 +0000 (16:47 -0500)]
Behdad Esfahbod [Sun, 11 Nov 2018 21:35:28 +0000 (16:35 -0500)]
Minor
Behdad Esfahbod [Sun, 11 Nov 2018 21:25:43 +0000 (16:25 -0500)]
Minor
Behdad Esfahbod [Sun, 11 Nov 2018 21:09:38 +0000 (16:09 -0500)]
Revert "Declare Null() constexpr"
This reverts commit
442a72d95ab1fb3a47b486d8d1eb68e909d0ffb8.
Doesn't make sense. No idea how my local compilers where happy with it!
Behdad Esfahbod [Sun, 11 Nov 2018 20:54:20 +0000 (15:54 -0500)]
Minor
Behdad Esfahbod [Sun, 11 Nov 2018 20:51:23 +0000 (15:51 -0500)]
Declare Null() constexpr
Behdad Esfahbod [Sun, 11 Nov 2018 20:48:47 +0000 (15:48 -0500)]
Don't store to null object
Ouch :).
Behdad Esfahbod [Sun, 11 Nov 2018 20:45:58 +0000 (15:45 -0500)]
Remove unused function
Behdad Esfahbod [Sun, 11 Nov 2018 17:54:16 +0000 (12:54 -0500)]
[hdmx] Renames
Behdad Esfahbod [Sun, 11 Nov 2018 16:40:57 +0000 (11:40 -0500)]
Add hb_blob_ptr_t.destroy()
Behdad Esfahbod [Sun, 11 Nov 2018 05:39:52 +0000 (00:39 -0500)]
[hmtx/port] Use hb_blob_ptr_t
Behdad Esfahbod [Sun, 11 Nov 2018 05:28:47 +0000 (00:28 -0500)]
[cmap] Port to hb_blob_ptr_t
Although didn't need it...
Behdad Esfahbod [Sun, 11 Nov 2018 05:26:55 +0000 (00:26 -0500)]
[color] Port to hb_blob_ptr_t
Fix hb_blob_ptr_t::get_length () as well.
Behdad Esfahbod [Sun, 11 Nov 2018 05:17:30 +0000 (00:17 -0500)]
Comment
Behdad Esfahbod [Sun, 11 Nov 2018 05:16:17 +0000 (00:16 -0500)]
[shape-plan] Remove use of custom null object
Behdad Esfahbod [Sun, 11 Nov 2018 05:15:08 +0000 (00:15 -0500)]
[shape-plan] Make null object all zeros
To remove custom null object next..
Behdad Esfahbod [Sun, 11 Nov 2018 05:12:30 +0000 (00:12 -0500)]
[blob] Use default null object
Behdad Esfahbod [Sun, 11 Nov 2018 05:11:28 +0000 (00:11 -0500)]
[blob] Change null object memory mode to DUPLICATE
We never rely on that being equal to readonly. Just not being
writable. Maybe not even that given that the object is inert.
In prep for next commit, using default null pool.
Behdad Esfahbod [Sun, 11 Nov 2018 04:52:15 +0000 (23:52 -0500)]
Add hb_blob_ptr_t
Use in a couple of places. Push to bots to see how many unhappy before
I convert the rest.
Behdad Esfahbod [Sun, 11 Nov 2018 03:41:35 +0000 (22:41 -0500)]
Minor
Behdad Esfahbod [Sun, 11 Nov 2018 02:13:13 +0000 (21:13 -0500)]
[kerx] Fix Format1 tupleKern sanitization
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11312
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11305
Behdad Esfahbod [Sun, 11 Nov 2018 02:01:49 +0000 (21:01 -0500)]
[fuzzing] Make "make lib" faster and more usable
Behdad Esfahbod [Sun, 11 Nov 2018 01:11:10 +0000 (20:11 -0500)]
Minor
Behdad Esfahbod [Sun, 11 Nov 2018 01:10:03 +0000 (20:10 -0500)]
Revert parts of previous commit that made clang unhappy
Behdad Esfahbod [Sun, 11 Nov 2018 00:54:08 +0000 (19:54 -0500)]
Better fix for MSVC 2008
Follow up on
b4c61130324455bfd42095b01fa14ac901e441f1
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
Behdad Esfahbod [Sat, 10 Nov 2018 21:35:39 +0000 (16:35 -0500)]
Try fixing MSVC 2008 build
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
Behdad Esfahbod [Sat, 10 Nov 2018 21:11:14 +0000 (16:11 -0500)]
Fix hb_bytes_t's unused template array constructor
Behdad Esfahbod [Sat, 10 Nov 2018 21:09:21 +0000 (16:09 -0500)]
Add trivial casts to hb_bytes_t
Behdad Esfahbod [Sat, 10 Nov 2018 20:54:33 +0000 (15:54 -0500)]
Revert back hb_bytes_t.cmp() to the scheme it was
But fix UBSan complaint.
There's nothing in hb_bytes_t that guarantees lexical ordering, and
ordering by length first is much faster.
Behdad Esfahbod [Sat, 10 Nov 2018 20:43:16 +0000 (15:43 -0500)]
Fix hb_bytes_t.cmp() for realz this time
Behdad Esfahbod [Sat, 10 Nov 2018 20:38:48 +0000 (15:38 -0500)]
Fix hb_bytes_t.cmp()
Ouch!
Behdad Esfahbod [Sat, 10 Nov 2018 20:35:12 +0000 (15:35 -0500)]
Merge pull request #1376 from ebraminio/minor
[colr/feat/trak] minor
Ebrahim Byagowi [Sat, 10 Nov 2018 14:38:11 +0000 (18:08 +0330)]
[colr/feat/trak] minor
Behdad Esfahbod [Sat, 10 Nov 2018 06:56:37 +0000 (01:56 -0500)]
[qsort] Fix O(N^2) behavior if all array elements are the same
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11327
Reported as https://github.com/noporpoise/sort_r/issues/7
Behdad Esfahbod [Sat, 10 Nov 2018 05:37:17 +0000 (00:37 -0500)]
[post] Minor
Behdad Esfahbod [Sat, 10 Nov 2018 05:26:36 +0000 (00:26 -0500)]
[post] Move sanitize close to data fields
Behdad Esfahbod [Sat, 10 Nov 2018 05:19:50 +0000 (00:19 -0500)]
[post] Remove unnecessary hb_nonnull_ptr_t<>
Ebrahim Byagowi [Fri, 9 Nov 2018 23:12:08 +0000 (02:42 +0330)]
[glyf] minor
Behdad Esfahbod [Fri, 9 Nov 2018 15:01:50 +0000 (10:01 -0500)]
Fix a few MSVC 2008 warnings
https://github.com/harfbuzz/harfbuzz/issues/1374
Behdad Esfahbod [Thu, 8 Nov 2018 19:42:40 +0000 (14:42 -0500)]
Merge pull request #1358 from ebraminio/lcar
Hook AAT's lcar to _get_ligature_carets
Ebrahim Byagowi [Mon, 5 Nov 2018 09:01:58 +0000 (12:31 +0330)]
Hook AAT's lcar to _get_ligature_carets
Ebrahim Byagowi [Thu, 8 Nov 2018 18:16:26 +0000 (21:46 +0330)]
[aat] Minor
Behdad Esfahbod [Thu, 8 Nov 2018 17:17:09 +0000 (12:17 -0500)]
[test/text-rendering-tests] Update from upstream
Ebrahim Byagowi [Thu, 8 Nov 2018 17:18:54 +0000 (20:48 +0330)]
[aat] Minor (#1369)
Ebrahim Byagowi [Thu, 8 Nov 2018 15:47:02 +0000 (19:17 +0330)]
[just] Initial table implementation (#1364)
A starting point, its sanitization is not tested however
Ebrahim Byagowi [Thu, 8 Nov 2018 15:23:14 +0000 (18:53 +0330)]
[aat] Support Lookup<OffsetTo<>>, needed by just and lcar (#1368)
Ebrahim Byagowi [Thu, 8 Nov 2018 07:29:50 +0000 (10:59 +0330)]
[ci] minor
Behdad Esfahbod [Thu, 8 Nov 2018 02:58:04 +0000 (21:58 -0500)]
[aat] Ignore cross-stream offset of deleted-glyphs
I think it makes sense to accumulate it, but Ned tells me that's
what CoreText does.
Behdad Esfahbod [Thu, 8 Nov 2018 00:11:43 +0000 (19:11 -0500)]
[fuzzing] Take whatever text we can
Behdad Esfahbod [Wed, 7 Nov 2018 23:40:48 +0000 (18:40 -0500)]
Merge pull request #1362 from harfbuzz/cross-kern
Vastly improve kern/kerx tables, including cross-stream "kerning"
Behdad Esfahbod [Wed, 7 Nov 2018 23:13:22 +0000 (18:13 -0500)]
[kerx] Comment
Behdad Esfahbod [Wed, 7 Nov 2018 23:04:53 +0000 (18:04 -0500)]
[kern] Implement negative state numbers
Let the fuzzing bots rip this code apart...
Behdad Esfahbod [Wed, 7 Nov 2018 22:29:37 +0000 (17:29 -0500)]
[morx] Minor
Behdad Esfahbod [Wed, 7 Nov 2018 22:19:21 +0000 (17:19 -0500)]
[aat] Remove deleted-glyhs after applying kerx/kern
Finally: Fixes https://github.com/harfbuzz/harfbuzz/issues/1356
Test case:
$ ./hb-shape GeezaPro.ttc -u U+0628,U+064A,U+064E,U+0651,U+0629
[u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656]
The mark positioning (kern table CrossStream kerning) only works if deleted
glyph (as result of ligation) is still in stream and pushed through the
state machine.
Behdad Esfahbod [Wed, 7 Nov 2018 21:42:16 +0000 (16:42 -0500)]
[aat] Add debug info to state machine
Behdad Esfahbod [Wed, 7 Nov 2018 21:19:51 +0000 (16:19 -0500)]
Disable fallback mark positioning if kern table has cross-stream kerning
Happens even if the cross-stream kerning is for cursive attachment only. Oh well..
Behdad Esfahbod [Wed, 7 Nov 2018 21:07:22 +0000 (16:07 -0500)]
Don't apply both kerx and kern
Ouch!
Behdad Esfahbod [Wed, 7 Nov 2018 21:05:36 +0000 (16:05 -0500)]
Minor
Behdad Esfahbod [Wed, 7 Nov 2018 21:03:09 +0000 (16:03 -0500)]
[kern] Switch to dispatch
Behdad Esfahbod [Wed, 7 Nov 2018 21:02:40 +0000 (16:02 -0500)]
[kerx/kern] Add has_cross_stream()
Behdad Esfahbod [Wed, 7 Nov 2018 20:44:40 +0000 (15:44 -0500)]
[kerx] Fix peculiar indexing that was needed previously
Not needed now that we use GPOS attachment for cursive kerx.
Behdad Esfahbod [Wed, 7 Nov 2018 20:40:55 +0000 (15:40 -0500)]
[GPOS] Only mark unsafe-to-break if kerning happened
Fixes https://github.com/harfbuzz/harfbuzz/issues/1365
Behdad Esfahbod [Wed, 7 Nov 2018 20:02:16 +0000 (15:02 -0500)]
[GPOS] Add TODO item
Behdad Esfahbod [Wed, 7 Nov 2018 19:52:36 +0000 (14:52 -0500)]
[kerx] Implement CrossStream kerning for non-state-machine subtables
Untested.
Behdad Esfahbod [Wed, 7 Nov 2018 19:42:15 +0000 (14:42 -0500)]
[kerx] Disable backwards-kerning for non-state-machine tables
That's what the spec says for Backwards flag, only applicable to
formats 1 and 4.
Behdad Esfahbod [Wed, 7 Nov 2018 19:38:29 +0000 (14:38 -0500)]
[kerx] Use GPOS attachment facilities for CrossStream kerning
Behdad Esfahbod [Wed, 7 Nov 2018 19:11:48 +0000 (14:11 -0500)]
[kerx] Format
Behdad Esfahbod [Wed, 7 Nov 2018 19:04:04 +0000 (14:04 -0500)]
[kerx] Don't disable crossKerning if kern feature is off
Behdad Esfahbod [Wed, 7 Nov 2018 18:58:41 +0000 (13:58 -0500)]
[kern] Apply erlier, where GPOS/kerx are applied
Behdad Esfahbod [Wed, 7 Nov 2018 18:51:17 +0000 (13:51 -0500)]
[kerx] Implement tupleKerning for Format1
Untested.
Behdad Esfahbod [Wed, 7 Nov 2018 18:48:45 +0000 (13:48 -0500)]
[kerx] Better sanitize tupleKerning
Behdad Esfahbod [Wed, 7 Nov 2018 18:40:22 +0000 (13:40 -0500)]
[kern/kerx] Share KernTable, renamed to KerxTable
Behdad Esfahbod [Wed, 7 Nov 2018 18:35:06 +0000 (13:35 -0500)]
[fallback] Minor
Behdad Esfahbod [Wed, 7 Nov 2018 18:33:23 +0000 (13:33 -0500)]
[kern/kerx] More towards sharing KernTable
Behdad Esfahbod [Wed, 7 Nov 2018 18:10:05 +0000 (13:10 -0500)]
[kern] Disable Format1 and Format3 for OT-style tables
Behdad Esfahbod [Wed, 7 Nov 2018 18:04:21 +0000 (13:04 -0500)]
[kern] Minor
Behdad Esfahbod [Wed, 7 Nov 2018 17:57:10 +0000 (12:57 -0500)]
[kern] Move code