Behdad Esfahbod
a9fe787a11
[sanitizer] Add reset_object(), make set_object() do bounds-check
...
Affects morx/kerx run-time only currently. Will adjust their sanitize next.
2018-11-22 22:12:36 -05:00
Behdad Esfahbod
2c8188bf59
[kerx] Make sure subtables are non-zero-length
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11400
2018-11-22 22:02:19 -05:00
Behdad Esfahbod
a9e0bdc35d
[GSUB] Don't flush glyphset during recursion in closure()
...
See comment.
Supercedes https://github.com/harfbuzz/harfbuzz/pull/1401
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11366
2018-11-22 21:30:04 -05:00
Behdad Esfahbod
d0e81b2cc8
[set] Rename
2018-11-22 21:20:39 -05:00
Behdad Esfahbod
e866910579
Enforce requiring null_size even if min_size is 0
...
This concludes null-size enforcement changes
2018-11-22 18:07:59 -05:00
Behdad Esfahbod
4d4fd64ff4
Allow non-nullable OffsetTo<> to non-Null'able objects
2018-11-22 18:07:36 -05:00
Behdad Esfahbod
fa9f585ec5
[glyf] Don't mark structs UNBOUNDED
...
See comments.
2018-11-22 17:56:51 -05:00
Behdad Esfahbod
f47a60a754
Mark UnsizedArrayOf<> as UNBOUNDED
...
Since min_size is 0, Null() still accepts this type.
2018-11-22 17:53:29 -05:00
Behdad Esfahbod
199a0f7b41
[ot-shape] Simplify logic
2018-11-22 17:31:07 -05:00
Behdad Esfahbod
014e4980ed
Move
2018-11-22 16:21:49 -05:00
Behdad Esfahbod
62890dee18
[aat] Zero mark advances if decided so even if there's cross-kerning
...
Cross-kerning can only take care of positioning vertically. It doesn't
adjust mark advance...
2018-11-22 16:20:29 -05:00
Behdad Esfahbod
a201fa74cd
[aat] Tweak fallback positioning logic when applying morx
...
Such that for Indic-like scripts (eg. Khmer), we don't do any fallback mark
advance-zeroing / positioning, but we do for Latin, etc. Reuses preferences
of our script-specific OpenType shapers for those.
Fixes regression: https://github.com/harfbuzz/harfbuzz/issues/1393
Which means, fixes again: https://github.com/harfbuzz/harfbuzz/issues/1264
While not regressing: https://github.com/harfbuzz/harfbuzz/issues/1357
2018-11-22 15:52:29 -05:00
Behdad Esfahbod
fa0bd8964d
[myanmar] Minor move
2018-11-22 14:46:39 -05:00
Behdad Esfahbod
7dc561984b
[myanmar] If there's no GSUB table, pick myanmar shaper
...
Needed for morx+kern mark-zeroing interaction. All other scripts
work this way.
2018-11-22 14:45:46 -05:00
Behdad Esfahbod
25f52f58c2
[myanmar] Remove myanmar_old shaper
...
Over time it has become the same as default shaper. So, remove.
2018-11-22 14:41:01 -05:00
Behdad Esfahbod
eeed802b1d
Fix spurious gcc warnings
...
../../src/hb-null.hh:53:39: warning: enum constant in boolean context [-Wint-in-bool-context]
2018-11-22 01:53:36 -05:00
Behdad Esfahbod
b96ecb9971
More
...
This makes more of the gcc spurious warning:
../../src/hb-null.hh:53:39: warning: enum constant in boolean context [-Wint-in-bool-context]
But not going to let that defeat correct code. Type to switch to clang
as my main compiler...
2018-11-22 01:49:12 -05:00
Behdad Esfahbod
2737aa81e5
Fix up recent change
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
2018-11-22 01:44:27 -05:00
Behdad Esfahbod
fffea5aff7
Minor
2018-11-22 01:25:34 -05:00
Behdad Esfahbod
209b58ef73
Minor
2018-11-22 01:22:33 -05:00
Behdad Esfahbod
3b9fd176e8
Disallow taking Null() of unbounded structs
...
Not sure I've marked all such structs. To be done as we discover.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
2018-11-22 01:18:55 -05:00
Behdad Esfahbod
f2b91d6510
Use Type::null_size for our structs in Null(), sizeof() for other types
2018-11-22 01:10:22 -05:00
Behdad Esfahbod
7dd945a876
One more time..
2018-11-22 01:05:17 -05:00
Behdad Esfahbod
d062ad10de
Fix bots happy again, hopefully
...
So, our fallback static_assert cannot be had more than once per line
of source.
2018-11-22 00:39:14 -05:00
Behdad Esfahbod
fb10c021c8
Revert alignof() == 1 check
...
Bots not happy with using "this" inside assertion...
This reverts 2656644887
2018-11-22 00:21:49 -05:00
Behdad Esfahbod
8d778877b8
..
2018-11-21 23:46:09 -05:00
Behdad Esfahbod
8cfeed9948
Minor
2018-11-21 23:42:31 -05:00
Behdad Esfahbod
e5d954a2fb
Minor
2018-11-21 23:30:50 -05:00
Behdad Esfahbod
e987059c61
Minor
2018-11-21 23:25:06 -05:00
Behdad Esfahbod
a2b6d308a4
Remove DEFINE_SIZE_ARRAY2
2018-11-21 23:23:49 -05:00
Behdad Esfahbod
2656644887
Check alignof() structs are 1
2018-11-21 23:23:21 -05:00
Behdad Esfahbod
6321fdf704
Whitespace
2018-11-21 23:19:00 -05:00
Behdad Esfahbod
ecdceea861
Merge pull request #1399 from harfbuzz/sharada-sandhi-mark
...
Fix USE categories for U+111C9 SHARADA SANDHI MARK
2018-11-21 16:12:32 -05:00
Behdad Esfahbod
b89c7fd3dc
Allow defining HB_USE_ATEXIT to 0
...
That's better use of that value than requiring extra macro HB_NO_ATEXIT
2018-11-21 12:32:48 -05:00
David Corbett
b3d5b0a5d9
Fix USE categories for U+111C9 SHARADA SANDHI MARK
2018-11-21 11:35:44 -05:00
Behdad Esfahbod
f48bb9a393
[var] Deprecated axis enumeration API and add new version
...
New version has axis flags.
New API:
+hb_ot_var_axis_info_t
+hb_ot_var_find_axis_info()
+hb_ot_var_get_axis_infos()
Deprecated API:
-HB_OT_VAR_NO_AXIS_INDEX
-hb_ot_var_axis_t
-hb_ot_var_find_axis()
-hb_ot_var_get_axes()
2018-11-20 20:46:14 -05:00
Behdad Esfahbod
b2d803cef6
Remove newly-added -hb_ot_var_axis_get_flags()
2018-11-20 20:46:14 -05:00
Behdad Esfahbod
736897d7a1
[var] Make sure hb_ot_var_axis_flags_t is int-sized
2018-11-20 20:46:14 -05:00
Behdad Esfahbod
eab5d15f61
[var] Move code
2018-11-20 20:46:14 -05:00
David Corbett
8295118279
Shrink the emoji table by merging adjacent ranges
2018-11-20 15:41:45 -05:00
Behdad Esfahbod
be1828daaa
[var] Fix type of coords returned
...
Ouch. Wonder how none of the bots caught the float->int truncation.
2018-11-20 11:16:23 -05:00
Behdad Esfahbod
831ba74382
Fix Codacy "issues"
2018-11-20 01:16:08 -05:00
David Corbett
3c7792ca32
[use] Fix reordering
...
Fixes #1235 .
2018-11-19 16:49:40 -05:00
Behdad Esfahbod
587d49fc65
[fvar] Add named-instance API
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1241
2018-11-19 14:51:34 -05:00
Behdad Esfahbod
46c0da820f
Fix build
2018-11-19 13:32:48 -05:00
Behdad Esfahbod
56c9238d3d
[fvar] Rewrite sanitize
2018-11-19 13:09:53 -05:00
Behdad Esfahbod
4a6a692e3e
[fvar] Use hb_array_t for axes
2018-11-19 13:06:44 -05:00
Behdad Esfahbod
e009739601
[fvar] Minor
2018-11-19 12:53:53 -05:00
Behdad Esfahbod
1a2eb108b8
[ot-var] Add hb_ot_var_axis_get_flags()
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1241
New API:
+hb_ot_var_axis_flags_t
+hb_ot_var_axis_get_flags
2018-11-19 12:36:56 -05:00
Behdad Esfahbod
bd6b2ba1d3
[ot-var] Add flags
...
Unfortunate that we don't have room in hb_ot_var_axis_t to expose flags :(.
2018-11-19 11:34:56 -05:00
Behdad Esfahbod
c076c7b85c
[ot-var] Use hb_ot_name_id_t
2018-11-19 11:30:40 -05:00
Behdad Esfahbod
e3a1a8350a
2.1.3
2018-11-16 16:53:25 -08:00
Behdad Esfahbod
9714e114b8
Fix recent commits
2018-11-16 16:52:42 -08:00
Behdad Esfahbod
0328a1ce41
Revert b4c6113032
...
Was causing more trouble than it solved. We use unsigned for indexing,
and it's not helpful to allow that wrapping to negative integers on
32bit machines. The only way we could work around it would have been
by accepting int64_t arg, but that's overkill.
Ignore the MSVC 2008 build issue. We don't support that compiler.
2018-11-16 16:48:28 -08:00
Behdad Esfahbod
52f61cdb87
Detect over/under-flow in UnsizedArray::operator[]
...
Was causing bad substitutions in mort table because of WordOffsetToIndex()
producing negative numbers that were cast to unsigned int and returned as
large numbers (which was desirable, so they would be rejected), but then
they were cast to int when passed to this operator and acting as small
negative integers, which was bad...
Detect overflow. Ouch, however, now I see this still fails on 32-bit.
Guess I'm going to revert an earlier change.
2018-11-16 16:41:59 -08:00
Behdad Esfahbod
6910ff03e6
[aat] Fix mort shaping
...
Ouch!
2018-11-16 16:11:02 -08:00
Behdad Esfahbod
fdb29ab2b0
2.1.2
2018-11-16 15:38:11 -08:00
Behdad Esfahbod
cff4c6087f
Fix vertical fallback space sign
...
Ouch!
Follow-up to cf203af8a3
Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
2018-11-16 15:04:41 -08:00
Behdad Esfahbod
7a97f70740
Don't apply GPOS if applying morx
...
That's what Apple does, and it wouldn't degrade our OpenType performance.
Part of https://github.com/harfbuzz/harfbuzz/issues/1348
2018-11-16 14:46:40 -08:00
Behdad Esfahbod
eafd515639
Prefer morx table if GSUB is empty (no scripts)
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1348
2018-11-16 14:45:56 -08:00
Behdad Esfahbod
aa06574823
Minor
2018-11-16 14:31:05 -08:00
Behdad Esfahbod
50d1a41c08
[coretext] Hopefully the last one
2018-11-16 08:52:57 -05:00
Behdad Esfahbod
0aab861f9c
[coretext] Another round
2018-11-16 08:43:25 -05:00
Behdad Esfahbod
0809b76a9a
[coretext] One more try..
2018-11-16 08:29:47 -05:00
Behdad Esfahbod
78bd447594
[coretext] One more try
2018-11-16 04:10:53 -05:00
Behdad Esfahbod
fd27a23c82
[coretext] Another build fix attemt
2018-11-16 03:57:12 -05:00
Behdad Esfahbod
729aedf0da
[directwrite] Fix build
2018-11-16 03:26:46 -05:00
Behdad Esfahbod
cfb9771a3b
[coretext] Try to fix
2018-11-16 03:25:07 -05:00
Behdad Esfahbod
e3e9547365
[coretext] Unbreak build
2018-11-16 02:55:29 -05:00
Behdad Esfahbod
ce5da0f36a
[shaper] Rewrite shaper data code to be more template-driven than macro-driven
2018-11-16 02:52:20 -05:00
Behdad Esfahbod
cb4bf85b14
[hdmx] Fix bounds checking
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11351
2018-11-16 02:02:24 -05:00
Behdad Esfahbod
af727b4e62
[hdmx] Minor
2018-11-16 01:55:39 -05:00
Behdad Esfahbod
9e9f16c92d
[subset] Remove invalid glyphs from glypset to retain
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/1388
2018-11-16 01:48:26 -05:00
Ebrahim Byagowi
11aa0468ac
[subset] minor, adjust spaces
2018-11-16 00:02:47 +03:30
Ebrahim Byagowi
d7c50ff0d6
[math] minor, adjust spaces
2018-11-16 00:02:47 +03:30
Behdad Esfahbod
cabe433fbb
[base] Add TODO items
2018-11-15 02:48:50 -05:00
Behdad Esfahbod
3bf1ce748f
[shaper] Rename
2018-11-14 21:08:54 -05:00
Behdad Esfahbod
c221dc0ba7
[ot-shape] Move code around
2018-11-14 19:57:19 -05:00
Ebrahim Byagowi
7867c2bad0
[STAT] Add table parsing ( #1384 )
2018-11-14 22:13:50 +03:30
Behdad Esfahbod
48d16c2ab2
[hmtx] Fix signedness issue
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1248#issuecomment-438689499
2018-11-14 09:57:05 -05:00
Ebrahim Byagowi
29db2a44a6
[ot-color/svg] Note that it can be gzipped
2018-11-14 12:13:16 +03:30
Behdad Esfahbod
3c3eb5ea9c
[aat] Disable fallback mark advance zeroing and positioning if morx applied
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1357
2018-11-13 21:10:10 -05:00
Behdad Esfahbod
dc4225ccd1
Don't retry creating again and again in lazy_loader if create failed
...
Still does that if get_null() returns nullptr. Our shaper data objects
are like that. Shrug.
2018-11-13 20:48:46 -05:00
Behdad Esfahbod
086235f593
Merge pull request #1382 from punchcutter/master
...
Change USE Category for Grantha Virama
2018-11-13 19:50:25 -05:00
Behdad Esfahbod
2092f595c7
Merge pull request #1380 from kbrow1i/cygwin
...
Don't use Win32 API on Cygwin
2018-11-13 19:49:06 -05:00
punchcutter
c565fc3fb3
Change USE Category for Grantha Virama
...
https://github.com/harfbuzz/harfbuzz/issues/1379
2018-11-13 12:51:10 -08:00
Behdad Esfahbod
475be9d5c6
Fix Windows build
2018-11-13 13:01:13 -05:00
Behdad Esfahbod
fc44dea341
Use atomic ints for upem and num_glyphs on face
2018-11-13 11:54:33 -05:00
Behdad Esfahbod
9579ed9755
Make atomic types' internal values non-mutable
...
This resulted from confusion previously...
2018-11-13 11:46:20 -05:00
Behdad Esfahbod
c52d5bcd94
[ot-face] Add 'head' table
2018-11-13 11:41:29 -05:00
Ken Brown
eee5b5ed04
Don't use Win32 API on Cygwin
...
Cygwin is a Posix platform to the extent possible. It should use the
Posix API except in special circumstances.
2018-11-12 21:07:34 -05:00
Behdad Esfahbod
56f541d000
[shape-plan] Remove unused code
2018-11-12 19:46:37 -05:00
Behdad Esfahbod
6c22f3fd95
[shape-plan] Implement fine-grained caching plans with user-features
...
Only tag, value, and global-ness of features are considered, not their
start/end offsets.
2018-11-12 19:26:01 -05:00
Behdad Esfahbod
cc8428756a
[shape-plan] Cache shape plans with variations based on variation indices
2018-11-12 18:48:10 -05:00
Behdad Esfahbod
8284cb9fb3
[shape-plan] Refactor more
2018-11-12 18:18:20 -05:00
Behdad Esfahbod
1082338525
[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.
2018-11-12 18:05:02 -05:00
Behdad Esfahbod
7ac03f88a2
[shape-plan] Minor
2018-11-12 17:50:30 -05:00
Behdad Esfahbod
c7be933439
[shape-plan] Refactor some more
2018-11-12 17:49:15 -05:00
Behdad Esfahbod
fc27777833
[shape-plan] Refactor more
2018-11-12 17:27:34 -05:00
Behdad Esfahbod
566612295b
[shape-plan] Turn hb_shape_plan_proposal_t into hb_shape_plan_key_t
...
And include it in hb_shape_plan_t itself.
2018-11-12 17:19:45 -05:00