Commit Graph

5652 Commits

Author SHA1 Message Date
Behdad Esfahbod 7997144b5f [color] Revamp palette API 2018-10-22 14:22:31 -07:00
Behdad Esfahbod 3bf91bd269 [color] Rewrite colr access
COLR table has one function: return layers for a glyph, and we expose exactly
that, so should just wire it through.  Also use sub_array() for verifiable
safety.

Also, BaseGlyphRecord's null object is enough.  We don't need to special-case
the not-found.
2018-10-22 14:21:23 -07:00
Behdad Esfahbod 1de17bdb80 [colr] Add hb_ot_color_layer_t
We never return parallel arrays from functions.  That's inconvenient
and hard to bind.
2018-10-22 14:21:23 -07:00
Behdad Esfahbod 3b3668acc8 [color] Rename / reorder a bit
Implement has_data() for realz.
2018-10-22 14:21:23 -07:00
Michiharu Ariza 570b77f7d2 Merge branch 'master' into cff-subset 2018-10-22 13:06:47 -07:00
Behdad Esfahbod 9085a72deb [cpal] Touch up palette flags 2018-10-22 13:03:29 -07:00
Behdad Esfahbod ee11fae9d0 [color] Rename "gid" to "glyph"
We don't expose "gid" in API.
2018-10-22 13:03:29 -07:00
Behdad Esfahbod 228fa71bf9 [colr] Move sanitize 2018-10-22 13:03:29 -07:00
Ebrahim Byagowi d440c8d3fb
Add chromacheck Emoji test fonts and minor preparations (#1294) 2018-10-22 22:07:59 +03:30
Michiharu Ariza 857c58279e Merge branch 'master' into cff-subset 2018-10-22 09:57:20 -07:00
Behdad Esfahbod b92b9d7e52 [colr] Move compare function into a static
Not sure if MSVC would be unhappy about this.
2018-10-22 10:17:31 +02:00
Behdad Esfahbod b6b171732a [colr] Minor 2018-10-22 10:17:31 +02:00
Behdad Esfahbod a6ade3471e [colr] Move sanitize() to right place
Sanitize always comes just before data member definitions, so
it's easy to cross-check.
2018-10-22 10:17:31 +02:00
Behdad Esfahbod 24adc15757 [colr] Touch up a bit
When a struct is plain old data with no references, etc, it's okay
to mark its members public.
2018-10-22 10:17:31 +02:00
Khaled Hosny cc6e77ca98 [color] Fix documentation a bit 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 37ba2413c1 Minor 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 44f79b4bf8 Remove _palette_entry_count as can be done with _palette_colors 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 6795dcfc08 [test] Test hb_ot_color_has_{colr,cpal}_data 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi b8ee3a0ec8 [CPAL] Add palette entry and enable palette flag API 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi d4261b4bb6 Add API test for hb_ot_color_get_color_layers 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 456978d408 Address COLR/CPAL reviews and revive cpal_v1 tests 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 687f679b80 [color] Fix alpha channel value and adjust spaces 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 00e94ce24e [dump-emoji] Formatting 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi e8a6f5b803 Add three macros for separating color channels 2018-10-22 10:17:31 +02:00
Khaled Hosny d4e928b142 [color] Minimal API for COLR/CPAL 2018-10-22 10:17:31 +02:00
Behdad Esfahbod 1e39833ba8 [docs] Minor 2018-10-20 16:57:36 -07:00
Behdad Esfahbod a5ad8c658d [docs] More fixes 2018-10-20 16:52:55 -07:00
Behdad Esfahbod 314b1af74f [docs] Fix warning
Fixes https://github.com/harfbuzz/harfbuzz/issues/1260
2018-10-20 16:49:16 -07:00
Behdad Esfahbod b713c13977 [kerx] Implement tuple-kerning in Format0 2018-10-20 14:56:28 -07:00
Behdad Esfahbod 0a3b7a0fb0 2.0.2 2018-10-20 13:14:07 -07:00
Behdad Esfahbod 68b7050768 [kerx] Fix sanitize of KerxSubtableFormat2::array read
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11033
2018-10-20 12:20:57 -07:00
Behdad Esfahbod 00fdbca4f6 [aat] Fix LookupFormat10 sanitize
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11060
2018-10-20 12:20:57 -07:00
Ebrahim Byagowi 1e55e21dea
Merge pull request #1283 from khaledhosny/cygwin
Cygwin fixes and CI build
2018-10-20 07:45:46 +03:30
Behdad Esfahbod 7c2c8ac301 2.0.1 2018-10-19 19:39:58 -07:00
Bruce Mitchener 5a24ea15e0 Make more 'coords' params const. 2018-10-19 19:15:42 -07:00
Behdad Esfahbod 08b7172969 [font] Fix parallel funcs passing to eachover in infinite-loop
Fixes test just added.
2018-10-19 19:12:33 -07:00
Behdad Esfahbod 29d877518f [kerx] Implement variation-kerning tables (without the variation part)
SFSNDisplay uses these.  We just apply the default kern without
variations right now.  But at least makes the default kern work.
2018-10-19 16:06:54 -07:00
Behdad Esfahbod f7c0b4319c [aat] Implement LookupFormat10 2018-10-19 15:23:49 -07:00
Khaled Hosny 30cbe6158d Use O_BINARY instead of _O_BINARY
Cygwin does not seem to have the later
2018-10-19 22:46:40 +02:00
Behdad Esfahbod 79b6356155 [trak] Fix extrapolation at end side 2018-10-19 11:00:20 -07:00
Behdad Esfahbod 2352cc3539 [kerx] Whitespace 2018-10-19 10:17:02 -07:00
Ebrahim Byagowi 114f66dda6 Fix hb_map_is_empty logic
This needs reviewing
2018-10-19 20:23:36 +03:30
Ebrahim Byagowi 9df2fb1611 Add API tests for hb_map_t 2018-10-19 20:23:36 +03:30
Ebrahim Byagowi c6eb5e852c Don't report deprecated symbols as unused symbols 2018-10-19 20:23:36 +03:30
Bruce Mitchener 4594730f64 Remove redundant return at end of void-returning function. 2018-10-19 18:17:18 +02:00
Bruce Mitchener 8d1e479d1d Use bool literals instead of 0/1. 2018-10-19 18:05:46 +02:00
Bruce Mitchener 257d0e5aa3 Fix typos. 2018-10-19 19:24:05 +03:30
Michiharu Ariza 51fba41cc9 Merge branch 'master' into cff-subset 2018-10-18 13:08:42 -07:00
Michiharu Ariza 8679d02b4b implement flex ops for glyph extents/subset
also removed unused CSInterpEnv::move_[xy]_with_arg
fixed bug a width being left over on argStack with CFF1
2018-10-18 13:04:21 -07:00
Behdad Esfahbod 3d9a0306eb 2.0.0 2018-10-18 05:58:17 -07:00
Ebrahim Byagowi 03e144135b
[ubsan] Use unsigned int instead enum where needed (#1270)
Actually the check is right,

On -myanmar.hh, on that particular switch, OT_C is indic_category_t
but OT_D is myanmar_category_t so we are mixing the types in one variable.

And on -arabic.cc, step can goes one number higher than step_t enum in the
loop so we are actually using it as an unsinged int.
2018-10-18 11:06:37 +03:30
Behdad Esfahbod f1ced9be37 More warning fix
Okay, let's see if the gods are happy now...
2018-10-17 23:06:53 -07:00
Behdad Esfahbod 40606abd0c Fix build 2018-10-17 23:06:37 -07:00
Behdad Esfahbod c406aca193 Fix warning 2018-10-17 22:58:43 -07:00
Behdad Esfahbod 270a37c324 Kick bots 2018-10-17 22:42:47 -07:00
Behdad Esfahbod 6da8ef3f9f Fix some wierdness... 2018-10-17 22:37:34 -07:00
Behdad Esfahbod 83780308b4 [aat] Fix sanitize slowdown
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11034
2018-10-17 22:34:16 -07:00
Behdad Esfahbod 9e8a9b846e [aat] Another try at fixing Lookup null objects...
Ugly as hell, and don't even understand why some bits are needed.
But the logic is sound.
2018-10-17 21:45:27 -07:00
Behdad Esfahbod 9d42d70269 [trak] Fix calc
We were getting the first track record always.  Ie. this line:

       if (trackTable[i].get_track_value () == 0.f)
       {
-       trackTableEntry = &trackTable[0];
+       trackTableEntry = &trackTable[i];
        break;
       }

The rest is cleanup.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1263 for the most part.
2018-10-17 17:55:47 -07:00
Michiharu Ariza 1f34388e8b Merge branch 'master' into cff-subset 2018-10-17 09:34:48 -07:00
Behdad Esfahbod 2e7c716511 [buffer] Add an assert
See if it helps debugging https://bugs.chromium.org/p/chromium/issues/detail?id=895117
2018-10-16 18:35:03 -07:00
Behdad Esfahbod 25fe7e7e10 [aat] Comment 2018-10-16 18:22:54 -07:00
HinTak 26092bb3d1 "allow-none" annotation for "out" parameters
Fixes the following warnings:
hb-ot-tag.cc:330: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters
hb-ot-tag.cc:334: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters
2018-10-16 17:36:10 -07:00
HinTak 49bdb54427 typo in gobject annotation - "in/out" should be "inout"
"in/out" should be "inout"
2018-10-16 16:41:12 -07:00
Behdad Esfahbod 36f38ea703 [gpos] Protect mark attachment against out-of-bounds
Not sure how can happen, but does...
2018-10-16 16:24:03 -07:00
Behdad Esfahbod 12cbe195ae [aat] Another non-null offset 2018-10-16 16:13:53 -07:00
Behdad Esfahbod 87205ef935 [aat] Make sure Lookup offset is never nulled
It has unbounded size...

Fixes https://oss-fuzz.com/v2/testcase-detail/5718889451749376
2018-10-16 15:41:00 -07:00
Behdad Esfahbod 2137582c96 [morx] Reword ligation
Still fails MORX-41.  Am talking to Sascha to better understand what CoreText
is doing.
2018-10-16 14:46:07 -07:00
Behdad Esfahbod c53a25c657 [morx] Comment 2018-10-16 13:57:35 -07:00
Behdad Esfahbod 5eb7e7f646 Revert "[vector] Simplify Sort" and "More of the same"
This reverts commit de0b9a4664.
This reverts commit 921f0e6ec7.

Annnnd, revert.  MSVC doesn't like it.
2018-10-16 13:33:14 -07:00
Behdad Esfahbod 661340c475 [kern] Scale kern pairs before applying
Fixes https://github.com/harfbuzz/harfbuzz/issues/1255
Fixes https://github.com/harfbuzz/harfbuzz/issues/1252
2018-10-16 13:24:29 -07:00
Behdad Esfahbod de0b9a4664 [vector] More of the same 2018-10-16 13:01:27 -07:00
Behdad Esfahbod 921f0e6ec7 [vector] Simplify sort
Hopefully this fits fine with SFINAE with all our compilers.
2018-10-16 13:01:27 -07:00
Ebrahim Byagowi 42b75dc3a7
[kerx] Minor, remove debug bit 2018-10-16 10:58:09 +03:30
Behdad Esfahbod 11703afce6 [kerx] Fix Format6 sanitize
Fixes https://oss-fuzz.com/v2/testcase-detail/5650286710882304
2018-10-15 21:17:08 -07:00
Behdad Esfahbod 4c27da7638 [CBDT] Fix more offsetting
Fixes https://oss-fuzz.com/v2/testcase-detail/5750379279548416
2018-10-15 19:46:45 -07:00
Michiharu Ariza 9ade3e7bb8 Merge branch 'master' into cff-subset 2018-10-15 14:03:23 -07:00
Michiharu Ariza 6420ffe00f fixed type casting bug 2018-10-15 14:03:18 -07:00
Behdad Esfahbod 0f85edb778 [morx] Another end-of-text corner case
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10990
2018-10-15 11:15:54 -07:00
Behdad Esfahbod 55d5ea666c [kerx] Merge clusters in Ligature 2018-10-15 11:05:10 -07:00
Behdad Esfahbod bb35725cd7 [kerx/morx] More end-of-text protection 2018-10-15 11:05:10 -07:00
Ebrahim Byagowi 8f3048a1f8
[dump-emoji] minor 2018-10-15 12:16:47 +03:30
Ebrahim Byagowi 27e095a613 [dump-emoji] better explaination of the usage 2018-10-15 01:41:49 -07:00
Behdad Esfahbod 8dc6296818 [ot-font] Implement TrueType v_origin
Fixes https://github.com/harfbuzz/harfbuzz/issues/537
2018-10-15 01:09:05 -07:00
Behdad Esfahbod 6e07076fd0 [blob] Fix UBSan error 2018-10-14 22:22:45 -07:00
Behdad Esfahbod fc812faaa9 [CBDT] Fix more offsetting issues
Fixes https://github.com/harfbuzz/harfbuzz/issues/960

dump-emoji still segfaults.  Needs debugging.
2018-10-14 21:32:25 -07:00
Behdad Esfahbod 6aee3bb87c [CBDT] Fix offset handling
Fixes https://github.com/harfbuzz/harfbuzz/issues/960
2018-10-14 21:08:42 -07:00
Behdad Esfahbod da744c6b3e [CBDT] More UnsizedArrayOf cleanup 2018-10-14 20:51:45 -07:00
Behdad Esfahbod 2995b4465b [CBDT] Simplify sanitize 2018-10-14 20:37:57 -07:00
Behdad Esfahbod 1c76c8f6ff [morx] Handle end-of-text conditions in Insertion
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10955
2018-10-14 19:39:31 -07:00
Behdad Esfahbod 60c1397673 [buffer] Fix output_glyph at end of buffer
Part of https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10955
2018-10-14 19:38:14 -07:00
Behdad Esfahbod 7efa38257b [aat] More protection against buffer fail 2018-10-14 19:30:44 -07:00
Behdad Esfahbod e1add2a275 [hmtx] Whitespace 2018-10-14 16:26:03 -07:00
Behdad Esfahbod 62376a7d98 Ignore signed-integer-overflow while kerning
Fixes https://github.com/harfbuzz/harfbuzz/issues/1247
2018-10-14 15:20:50 -07:00
Behdad Esfahbod 40f2b9355c [kerx] Fix Format1 sanitize
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10948
2018-10-14 14:56:32 -07:00
Behdad Esfahbod 44af1f93ee [aat] Whitespace 2018-10-14 14:52:17 -07:00
Michiharu Ariza db0d83ddc7 Merge branch 'master' into cff-subset 2018-10-13 17:25:38 -07:00
Michiharu Ariza 9228db06f4 added CFF1 Expert Encoding subset test & bug fixes 2018-10-13 17:25:09 -07:00
Behdad Esfahbod 56b8dd17f6 [aat] Finish off massaging table 2018-10-13 19:03:33 -04:00
Behdad Esfahbod e0c5e0d91b [aat] WIP remove feature mapping here from hb-coretext
Need to map enum values to numerics since we don't have CoreText headers.
2018-10-13 18:46:52 -04:00