Michiharu Ariza
6d79a25bed
Merge branch 'var-subset' of https://github.com/harfbuzz/harfbuzz into var-subset
2019-04-10 17:23:00 -07:00
Michiharu Ariza
ab9d30965d
Add tt var metrics test cases & bug fixes
2019-04-10 17:21:37 -07:00
Behdad Esfahbod
edfc6be4a0
[arabic] Disable fallback shaping if HB_NO_OT_SHAPE_COMPLEX_ARABIC_FALLBACK defined
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 16:10:54 -04:00
Behdad Esfahbod
4d31662b5d
Don't install ot-font funcs on new fonts if HB_NO_OT_FONT defined
...
Currently linker cannot GC hb-ot-font completely because we install
it on fonts by default. Don't do that if HB_NO_OT_FONT defined.
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 15:40:55 -04:00
Behdad Esfahbod
b111b3de02
Don't use any default unicode funcs if HB_NO_UNICODE_FUNCS is defined
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 15:39:48 -04:00
Behdad Esfahbod
c5509be93a
[coretext] Fix unused-variable error
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1659
2019-04-08 14:50:58 -04:00
Michiharu Ariza
196481ccb9
shift glyph horizontally at top level, not components
2019-04-05 16:37:12 -07:00
Michiharu Ariza
8a92ffd9bb
fix failure to check glyf recursion
2019-04-05 15:04:23 -07:00
Maks Naumov
4c19aa2620
Fix MSVC C4068 warning ( #1656 )
2019-04-05 11:46:27 -07:00
Maks Naumov
a96d003d6e
Fix MSVC C4138 warning ( #1657 )
2019-04-05 02:29:56 -07:00
Behdad Esfahbod
c68eb7002f
Minor
2019-04-03 16:24:12 -07:00
Behdad Esfahbod
85adf4ad5c
[GDEF] Don't assume glyphlist is sorted
...
As was hit by the fuzzer.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14032
2019-04-03 16:07:36 -07:00
Behdad Esfahbod
ecabdffc61
[algs] Add hb_min() and hb_max()
2019-04-03 16:06:34 -07:00
Behdad Esfahbod
7b863142ce
[serialize] Make putting breakpoint on out-of-memory easier
2019-04-03 15:48:27 -07:00
Behdad Esfahbod
2bd2750234
[iter] Tweak SFINAE again
...
Don't think we need hb_is_same().
2019-04-03 15:31:53 -07:00
Behdad Esfahbod
f02ebc89ec
[array] Add compy assignment operator since copy constructor is explicit
2019-04-03 15:23:06 -07:00
Behdad Esfahbod
20a73da2c9
[array] Add default copy constructor
...
MSVC seems to need it.
2019-04-03 14:32:15 -07:00
Behdad Esfahbod
d419a9a437
[iter] Use different SFINAE scheme to make MSVC happy
...
From Orvid King: TLDR; MSVC has some issues using sizeof(declval<T>()) for
SFINAE of templated types, so I just used SFINAE in a different context where
MSVC doesn't have the issue.
2019-04-03 14:18:19 -07:00
Behdad Esfahbod
2778df7972
[meta] Add hb_is_same()
2019-04-03 14:15:01 -07:00
Michiharu Ariza
b999ce9bf0
Merge branch 'master' into var-subset
2019-04-03 10:34:09 -07:00
Michiharu Ariza
c2d727a479
fix xshift by (lsb - xMin)
2019-04-03 10:33:55 -07:00
Behdad Esfahbod
6215fb8e68
[serialize] Actually reclaim storage from duplicate objects
2019-04-02 23:10:03 -07:00
Behdad Esfahbod
3305a2cad2
[serialize] Port to use object pool
...
Tested, but feels fragile :(.
2019-04-02 22:58:49 -07:00
Behdad Esfahbod
5efbc01174
[pool] Uses memset() instead of assigning Null()
...
Assignment is invalid on invalid object.
2019-04-02 22:41:06 -07:00
Behdad Esfahbod
434d78bf91
Add hb_pool_t<> for pooled memory allocation
2019-04-02 21:46:40 -07:00
Behdad Esfahbod
8e4df1a152
[serialize] Disable packed_map again
...
Ugh. Need to think of something else.
2019-04-02 20:20:53 -07:00
Behdad Esfahbod
31c1a83899
[map] Protect more against pointer deref
2019-04-02 20:17:27 -07:00
Behdad Esfahbod
5bffa9e375
More
2019-04-02 20:13:16 -07:00
Behdad Esfahbod
5b66b033fd
[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
2019-04-02 19:30:22 -07:00
Behdad Esfahbod
42ab32cbba
[iter] Remove passing pointer to hb_iter()
...
While doable with hb_deref_pointer() as well, we also would then
need to do it in a ton of places. Not worth it / messy.
2019-04-02 18:42:51 -07:00
Behdad Esfahbod
d0da547b37
[array] Use dagger for hashing array
...
Also switch to better mixing.
2019-04-02 18:23:05 -07:00
Behdad Esfahbod
b6f29bf141
[iter] Accept pointers in hb_iter()
...
No idea how to avoid dupicating code. Was hoping hb_deref_pointer()
would do it, but looks like a pointer can't bind to a universal
reference T&&. Humm.
2019-04-02 18:12:01 -07:00
Behdad Esfahbod
fc24bb9046
[serialize] Towards maintaining packed_map
2019-04-02 17:49:52 -07:00
Behdad Esfahbod
aa2293a55e
[serialize] Minor
2019-04-02 17:42:10 -07:00
Behdad Esfahbod
e42b82c828
[serialize] Handle non-nullable offsets
2019-04-02 17:23:16 -07:00
Behdad Esfahbod
e04518bafc
[serialize] Movce empty-object handling earlier
2019-04-02 17:20:04 -07:00
Behdad Esfahbod
7f73c9744e
[serialize] Minor
2019-04-02 17:12:24 -07:00
Michiharu Ariza
27d3bac8ef
fix 2x2 component transform
2019-04-02 17:02:11 -07:00
Behdad Esfahbod
5a3de4f4f8
[serialize] Allow offset links that have base offset from the object base
...
Rarely used, but used, in name table or similar constructs.
2019-04-02 16:53:42 -07:00
Ebrahim Byagowi
edad6b2c45
[test][iter] minor, fix double promotion warning
2019-04-03 00:48:59 +04:30
Michiharu Ariza
8801b80d72
refix: orig_points must be saved before any adjustment
2019-04-02 13:10:36 -07:00
Michiharu Ariza
ee58f6012e
infer gvar deltas for each region (not after accumulation)
2019-04-02 11:24:29 -07:00
Michiharu Ariza
2c31652c8a
fix private_indices vs shared_indices
2019-04-02 10:07:43 -07:00
Ebrahim Byagowi
062f5d6e7a
[test] minor, c style comments
2019-04-02 20:27:00 +04:30
Ebrahim Byagowi
afdbf960d6
[iter][test] Add another test for hb_reduce
...
Different initial and accumulator types
2019-04-02 20:25:06 +04:30
Behdad Esfahbod
bfa02bef45
[serialize] Switch to tetris-packing
2019-04-01 21:36:13 -07:00
Behdad Esfahbod
f0ea3ac17b
[serialize] Fix linking
2019-04-01 21:36:03 -07:00
Behdad Esfahbod
7c0e2054e0
[serialize] Minor
2019-04-01 21:32:29 -07:00
Michiharu Ariza
dce9e5e622
fix get_start_tuple, get_end_tuple
2019-04-01 20:55:02 -07:00
Behdad Esfahbod
64d0f08938
[cmap] Minor
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
2e675cc7b5
[subset] Call serialize start/end around it
...
To be cleaned up.
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
abe33c6149
[serialize] Assert stack
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
72e9b2c16c
[serialize] Add add_link() to add link
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
74addbecac
[serialize] Add default template type to push()
2019-04-01 16:56:41 -07:00
Ebrahim Byagowi
b8642087e6
[iter] hb_reduce, accumulator with a different type
2019-04-01 16:56:29 -07:00
Ebrahim Byagowi
e526414c75
[iter] Implement hb_reduce
2019-04-01 16:56:29 -07:00
Michiharu Ariza
72545cb839
fixed off by one bug in apply_deltas_to_points()
2019-04-01 16:49:15 -07:00
Behdad Esfahbod
f3aca6aa26
[serialize] Implement linking
...
Untested!
2019-03-31 21:37:14 -07:00
Behdad Esfahbod
17f0cfa7ea
Move BEInt to hb.hh
...
I knows...
2019-03-31 21:34:19 -07:00
Behdad Esfahbod
78fc43f293
[iter] Fix up build, ouch
...
Yeah, some things not very clear...
2019-03-31 19:17:07 -07:00
Jonathan Kew
e5d6fe9782
Don't skip setting the .end field of the first range
...
Fixes a bug in CoverageFormat2::serialize whereby the first range
was not serialized correctly if it consists of only a single glyph ID.
This broke shaping of U+0626 in the Arabic fallback shaper, because it
is not found in the coverage table of the 'init' and 'medi' lookups.
Also fix similar bug in ClassDefFormat2::serialize, noted during code
inspection (I haven't observed a case that was actually affected by
this, but it looks broken).
Fixes https://github.com/harfbuzz/harfbuzz/issues/1504
2019-03-31 19:02:47 -07:00
Behdad Esfahbod
8a8d45b924
[iter] Adjust hb_copy() and use it
...
Untested.
2019-03-31 19:00:09 -07:00
Ebrahim Byagowi
ba4b7be455
Remove coretext_aat shaper ( #1581 )
...
coretext_aat was a temporary shaper to redirect shaping of AAT fonts
to CoreText and leaving the rest for HarfBuzz. As HarfBuzz now supports
AAT and Chrome now actually ships that on a stable version on macOS,
we no longer care about such use-case. If a client really wants 100%
metrics compatibility with CoreText better to use it directly or through
our API. Replicating the same behavior still is possible using
hb_shape_full, something we don't care or like to offer anymore.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1478
2019-03-31 01:32:30 -07:00
Michiharu Ariza
ef11305bfd
fixed tt var extents
...
max bounds were not correctly initialized
2019-03-31 00:23:58 -07:00
Michiharu Ariza
f7700fc479
Merge branch 'master' into var-subset
2019-03-30 20:49:34 -07:00
Behdad Esfahbod
d6005b49b3
[serialize] Start implementing linking
2019-03-30 19:49:56 -07:00
Behdad Esfahbod
313b3057c3
[serializer] Implement dedup!
2019-03-30 19:46:35 -07:00
Behdad Esfahbod
b189bbc48f
Implement hashing of objects
...
Should be improved for hb_bytes_t.
2019-03-30 19:41:48 -07:00
Behdad Esfahbod
d6b28057a5
Fix hb_hash(pointer)
2019-03-30 19:31:51 -07:00
Behdad Esfahbod
d74dc3ef65
[serialize] Don't insert empty object into tree
2019-03-30 19:26:37 -07:00
Behdad Esfahbod
7fd8228326
[serialize] Towards maintaining hashmap
2019-03-30 19:16:20 -07:00
Behdad Esfahbod
f254f45a1e
[serialize] Only pack main object if there are other objects
...
Avoids a memmove for tables that don't use the object packing mechanism.
2019-03-30 19:05:51 -07:00
Behdad Esfahbod
946d446f9b
[serialize] Copy both sides of the buffer
2019-03-30 19:03:55 -07:00
Behdad Esfahbod
8512dc565d
[serialize] Simplify copy
2019-03-30 19:01:23 -07:00
Michiharu Ariza
43725d3632
Merge branch 'master' into var-subset
2019-03-30 18:51:15 -07:00
Behdad Esfahbod
0b1fe7b716
[serializer] Unbreak for now
2019-03-30 18:48:26 -07:00
Behdad Esfahbod
10f062234e
[map] Shuffle fini code
2019-03-30 18:44:01 -07:00
Behdad Esfahbod
e6b78003ef
[vector] Add move semantics
2019-03-30 18:33:30 -07:00
Behdad Esfahbod
4c4d3c3ed5
[vector] Add some move and forwarding
2019-03-30 18:30:50 -07:00
Behdad Esfahbod
7c9ceabcef
[meta] Add hb_move and hb_forward ala std::
2019-03-30 18:23:24 -07:00
Behdad Esfahbod
9a19b885f9
[serialize] Flesh out packing
2019-03-30 18:14:30 -07:00
Behdad Esfahbod
357c7c611c
[vector] Add copy constructor and assignment operator
2019-03-30 18:13:57 -07:00
Behdad Esfahbod
6f69c9d26f
[serialize] Minor
2019-03-30 18:00:03 -07:00
Behdad Esfahbod
a43290192b
[serialize] Add packed_map
2019-03-30 17:57:33 -07:00
Behdad Esfahbod
bed150bd2e
[serialize] Start fleshing out object stack
2019-03-30 17:43:43 -07:00
Behdad Esfahbod
63c3565189
[serialize] Simplify propagate_error()
2019-03-30 17:12:40 -07:00
Behdad Esfahbod
dbe9ba6711
[serialize] Add object_t, link_t, and snapshot_t
2019-03-30 17:10:59 -07:00
Behdad Esfahbod
38d57b9a66
[map] Add another TODO item
2019-03-30 16:38:06 -07:00
Behdad Esfahbod
7fd940f899
[map] Add TODO
2019-03-30 16:29:19 -07:00
Behdad Esfahbod
6dcf7c4017
[serialize] Add unused 'tail'
2019-03-30 15:08:39 -07:00
Behdad Esfahbod
fe05e48086
[serialize] Add ran_out_of_room
2019-03-30 15:06:25 -07:00
Behdad Esfahbod
a7c63cd8f8
Split sanitize and dispatch into their own files
2019-03-30 14:59:40 -07:00
Behdad Esfahbod
be66b575fc
Move serializer to hb-serialize.hh
2019-03-30 14:53:54 -07:00
Behdad Esfahbod
bb22462f29
Whitespace
2019-03-30 14:46:54 -07:00
Behdad Esfahbod
ef33b5d1f6
[map] Deref pointers before equality check
2019-03-30 14:39:21 -07:00
Behdad Esfahbod
c98f51da71
[map] Templatize hb_map_t
...
Template name is hb_hashmap_t<K,V>.
2019-03-30 14:32:52 -07:00
Michiharu Ariza
294d520f65
more iter changes from master
2019-03-30 13:58:22 -07:00
Behdad Esfahbod
4b7f4dbc0c
Add hb_deref_pointer()
2019-03-30 13:48:32 -07:00
Michiharu Ariza
8f2ce82f76
hb.hh from master
2019-03-30 11:50:24 -07:00
Michiharu Ariza
3bfd3a367c
fix build
2019-03-30 00:27:02 -07:00