Commit Graph

8166 Commits

Author SHA1 Message Date
Behdad Esfahbod 1d66cdcf77 Better fix for MSVC 2008
Follow up on b4c6113032

Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-10 19:57:51 -05:00
Michiharu Ariza fb2a037f54 Merge branch 'master' into cff-subset 2018-11-10 16:23:11 -08:00
Behdad Esfahbod b4c6113032 Try fixing MSVC 2008 build
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-10 16:35:39 -05:00
Behdad Esfahbod f2e942f302 Fix hb_bytes_t's unused template array constructor 2018-11-10 16:11:14 -05:00
Behdad Esfahbod 6213a75b68 Add trivial casts to hb_bytes_t 2018-11-10 16:09:21 -05:00
Behdad Esfahbod 8bb97d2ce1 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.
2018-11-10 16:00:51 -05:00
Behdad Esfahbod 534e1d7694 Fix hb_bytes_t.cmp() for realz this time 2018-11-10 15:45:31 -05:00
Behdad Esfahbod 929f07dbfc Fix hb_bytes_t.cmp()
Ouch!
2018-11-10 15:39:07 -05:00
Behdad Esfahbod 5547bfa9f2
Merge pull request #1376 from ebraminio/minor
[colr/feat/trak] minor
2018-11-10 15:35:12 -05:00
Ebrahim Byagowi 1d82b4761d [colr/feat/trak] minor 2018-11-10 19:31:12 +03:30
Behdad Esfahbod 3a9fa8c026 [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
2018-11-10 01:58:26 -05:00
Behdad Esfahbod b308aaccf0 [post] Minor 2018-11-10 01:58:26 -05:00
Behdad Esfahbod 4111c3b8cd [post] Move sanitize close to data fields 2018-11-10 01:58:26 -05:00
Behdad Esfahbod e26e6dbb33 [post] Remove unnecessary hb_nonnull_ptr_t<> 2018-11-10 01:58:26 -05:00
Ebrahim Byagowi 6b8178c649
[glyf] minor 2018-11-10 02:42:08 +03:30
Michiharu Ariza 8798416587 fixed vstem handling (lack thereof) in check_width
bug exposed by U+2261 equivalence in SourceCodePro-Regular.otf
2018-11-09 08:59:18 -08:00
Behdad Esfahbod 5f97fe9956 Fix a few MSVC 2008 warnings
https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-09 10:01:50 -05:00
Behdad Esfahbod f51bb6ee7b
Merge pull request #1358 from ebraminio/lcar
Hook AAT's lcar to _get_ligature_carets
2018-11-08 14:42:40 -05:00
Ebrahim Byagowi b986fead0a Hook AAT's lcar to _get_ligature_carets 2018-11-08 23:06:26 +03:30
Ebrahim Byagowi 2d987110c0
[aat] Minor 2018-11-08 21:46:26 +03:30
Behdad Esfahbod 9fae611740 [test/text-rendering-tests] Update from upstream 2018-11-08 12:26:38 -05:00
Ebrahim Byagowi b989507fa6
[aat] Minor (#1369) 2018-11-08 20:48:54 +03:30
Michiharu Ariza 26c291aaa0 Merge branch 'master' into cff-subset 2018-11-08 09:06:49 -08:00
Michiharu Ariza 417963dd9f got rid of Remap::fullset() as incorrect, redundant, inefficient 2018-11-08 09:01:20 -08:00
Ebrahim Byagowi f90423847b
[just] Initial table implementation (#1364)
A starting point, its sanitization is not tested however
2018-11-08 19:17:02 +03:30
Ebrahim Byagowi b8b00fb3c6
[aat] Support Lookup<OffsetTo<>>, needed by just and lcar (#1368) 2018-11-08 18:53:14 +03:30
Ebrahim Byagowi 073d0a9fbc
[ci] minor 2018-11-08 10:59:50 +03:30
Behdad Esfahbod 15326826bf [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.
2018-11-07 21:58:04 -05:00
Michiharu Ariza 636a6833c5 fixed ends_in_hint bug
subr ends in hint itself should be regarded as hint
this flag should propagate to its caller if the call itself is at the end of the caller
2018-11-07 17:58:45 -08:00
Behdad Esfahbod 0bf76154f1 [fuzzing] Take whatever text we can 2018-11-07 19:12:27 -05:00
Behdad Esfahbod 517a1bac97
Merge pull request #1362 from harfbuzz/cross-kern
Vastly improve kern/kerx tables, including cross-stream "kerning"
2018-11-07 18:40:48 -05:00
Behdad Esfahbod b18a56a290 [kerx] Comment 2018-11-07 18:13:22 -05:00
Michiharu Ariza 4d74020694 Merge branch 'master' into cff-subset 2018-11-07 15:09:30 -08:00
Michiharu Ariza e0c30b961d merge with cff-subset branch 2018-11-07 15:08:55 -08:00
Behdad Esfahbod 006386be3a [kern] Implement negative state numbers
Let the fuzzing bots rip this code apart...
2018-11-07 18:04:53 -05:00
Michiharu Ariza 0996c0ff62 implented no-desubroutinize with CFF2 along with API test
replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy
replaced expected results as well
2018-11-07 14:48:37 -08:00
Behdad Esfahbod 29c5302376 [morx] Minor 2018-11-07 17:29:37 -05:00
Behdad Esfahbod 385f78b312 [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.
2018-11-07 17:20:47 -05:00
Behdad Esfahbod 1909072235 [aat] Add debug info to state machine 2018-11-07 16:42:16 -05:00
Behdad Esfahbod ca23567f41 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..
2018-11-07 16:19:51 -05:00
Behdad Esfahbod 5cf6f94dfd Don't apply both kerx and kern
Ouch!
2018-11-07 16:07:22 -05:00
Behdad Esfahbod 41cff7afc9 Minor 2018-11-07 16:05:36 -05:00
Behdad Esfahbod 9af983af24 [kern] Switch to dispatch 2018-11-07 16:03:09 -05:00
Behdad Esfahbod bc06e2805a [kerx/kern] Add has_cross_stream() 2018-11-07 16:02:40 -05:00
Behdad Esfahbod ea579f9ccc [kerx] Fix peculiar indexing that was needed previously
Not needed now that we use GPOS attachment for cursive kerx.
2018-11-07 15:50:23 -05:00
Behdad Esfahbod 6ee6cd93d8 [GPOS] Only mark unsafe-to-break if kerning happened
Fixes https://github.com/harfbuzz/harfbuzz/issues/1365
2018-11-07 15:40:55 -05:00
Behdad Esfahbod 501a364d9b [GPOS] Add TODO item 2018-11-07 15:02:16 -05:00
Behdad Esfahbod 7a9629f2f1 [kerx] Implement CrossStream kerning for non-state-machine subtables
Untested.
2018-11-07 14:52:57 -05:00
Behdad Esfahbod 0eb4157011 [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.
2018-11-07 14:42:15 -05:00
Behdad Esfahbod b2f687c256 [kerx] Use GPOS attachment facilities for CrossStream kerning 2018-11-07 14:38:29 -05:00