Commit Graph

7271 Commits

Author SHA1 Message Date
Behdad Esfahbod 2f4be4ba54 Add HB_NO_OPTIONS
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 16:21:58 -04:00
Michiharu Ariza 3e524bf772 fix VarData serialize to remove unused data sets
add api test case for that
2019-04-12 12:48:48 -07:00
Behdad Esfahbod 079d2dcbb2 Add HB_NO_NAME_TABLE_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 15:00:37 -04:00
Behdad Esfahbod 60a58aa61c Add HB_NO_OT_FONT_BITMAP
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 14:58:53 -04:00
Behdad Esfahbod 160c4d8b2d Add HB_NO_OT_FONT_CFF
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 14:57:49 -04:00
Behdad Esfahbod 35f3b97fac Add HB_NO_OT_SHAPE_COMPLEX_HEBREW_FALLBACK
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 10:16:12 -04:00
Behdad Esfahbod 414c5de26b Add HB_NO_OT_SHAPE_FALLBACK
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 10:12:11 -04:00
Behdad Esfahbod fe0018f7ef Add HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 09:35:29 -04:00
Behdad Esfahbod 9ddbfa006d Add HB_NO_OT_LAYOUT_BLACKLIST
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 09:33:25 -04:00
Behdad Esfahbod 571fad4cf1 Add HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-11 19:42:05 -04:00
Michiharu Ariza a90e4916df Merge branch 'master' into var-subset 2019-04-11 15:57:32 -07:00
Nathan Willis 3db227265b Update gtk-doc annotations for inout counts on various getter functions. 2019-04-12 00:00:47 +02:00
Nathan Willis c08ddbd91b [Docs] Minor edits to gtk-doc inline comment review. 2019-04-12 00:00:47 +02:00
Nathan Willis af5230bce3 [Docs] Minor; fix formatting for gtk-doc multiple-annotations. 2019-04-12 00:00:47 +02:00
Nathan Willis 6c0a1e8cd6 [Docs] Annotate gtk-doc formatting with some un-annotated (out)s. 2019-04-12 00:00:47 +02:00
Nathan Willis 5122805c74 [Docs] Fix gtk-doc formatting for (out) and (inout). 2019-04-12 00:00:47 +02:00
Nathan Willis d3178aa52a [Docs] Fix gtk-doc references to 'kern' table functions, clarifying that GPOS is not examined. 2019-04-12 00:00:47 +02:00
Nathan Willis 3449031fad [Docs] Add inline gtk-doc documentation of GDEF glyph classes. 2019-04-12 00:00:47 +02:00
Nathan Willis 930f6fc3da [Docs] Add inlind gtk-doc comments for hb-ot-layout functions. 2019-04-12 00:00:47 +02:00
Michiharu Ariza 945737026d tweak: moved xshift code out of get_points_var 2019-04-11 10:52:11 -07:00
Michiharu Ariza e814083202 undo hb_ot_ge_glyph_v_origin to fix test failures 2019-04-11 09:59:13 -07:00
Behdad Esfahbod b52c0e54b9 Use injected class name to simplify macros 2019-04-11 11:20:10 -04:00
Behdad Esfahbod baf1e79075 [C++11] Use deleted methods 2019-04-11 11:18:04 -04:00
Behdad Esfahbod 824fd342d5 Rename a few macros 2019-04-11 11:16:01 -04:00
Michiharu Ariza 9e79285ef3 Merge branch 'master' into var-subset 2019-04-10 17:24:29 -07:00
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
Michiharu Ariza c7ca8853ae more change set() to = 2019-03-30 00:11:58 -07:00
Michiharu Ariza d75b73a309 fix rebase errors 2019-03-30 00:06:54 -07:00
Michiharu Ariza 3fbd242ba6 replace .set() with =
remove .gitignore
2019-03-29 23:53:06 -07:00
Michiharu Ariza cc94a9ed3b Merge branch 'var-subset' of https://github.com/harfbuzz/harfbuzz into var-subset
rebase master
2019-03-29 23:37:50 -07:00
Behdad Esfahbod e530692799 [iter] Fix bug in hb_any() and hb_none() 2019-03-29 23:31:39 -07:00
Michiharu Ariza ce6093a96b Merge branch 'var-subset' of https://github.com/harfbuzz/harfbuzz into var-subset 2019-03-29 23:24:12 -07:00
Michiharu Ariza a1177fec8f Merge branch 'master' into var-subset
rebase master
2019-03-29 23:23:49 -07:00
Behdad Esfahbod f505b5d5c9 [iter] Port remaining "for (auto" instances to daggers 2019-03-29 22:55:02 -07:00
Behdad Esfahbod 668d2d562f [iter] One more dagger 2019-03-29 22:48:38 -07:00
Behdad Esfahbod d51452500f [iter] Remove more wrong &&'s
Sigh...
2019-03-29 22:48:12 -07:00
Behdad Esfahbod 05f2130a1c [iter] More daggers 2019-03-29 22:43:12 -07:00
Behdad Esfahbod 22ec4c3aa5 [iter] More daggers 2019-03-29 22:29:00 -07:00
Behdad Esfahbod 688069bbfb [iter] One more dagger 2019-03-29 22:17:31 -07:00
Behdad Esfahbod 90b60bd690 Remove HB_DEBUG_WOULD_APPLY
Not that useful.
2019-03-29 22:12:42 -07:00
Behdad Esfahbod 4d28267e59 [iter] Port more to daggers 2019-03-29 22:04:15 -07:00
Behdad Esfahbod 9d8c72042b Whitespace 2019-03-29 21:59:28 -07:00
Behdad Esfahbod 418e9d07e2 Simplify code 2019-03-29 21:57:26 -07:00
Behdad Esfahbod f5ef8a7347 [iter] Port one more function to dagger 2019-03-29 21:57:17 -07:00
Behdad Esfahbod bcab098c8f [iter] Port more code to daggers 2019-03-29 21:49:18 -07:00
Behdad Esfahbod 4c75158e18 [iter] Port two more functions to daggers 2019-03-29 21:46:13 -07:00
Behdad Esfahbod e70ccbe9ed Fix pair signature
Oh well.  Again, who does fully understand what is right???
2019-03-29 21:45:49 -07:00
Behdad Esfahbod 6237b47f0c [iter] Add hb_unzip() 2019-03-29 21:36:49 -07:00
Behdad Esfahbod f1dad91eb3 Whitespace 2019-03-29 21:17:08 -07:00
Behdad Esfahbod 896b31670d [iter] Port two more loops to dagger 2019-03-29 21:16:30 -07:00
Behdad Esfahbod 8e34cb251a [iter] Remove unneeded &&
Next commit needs this.  I never fully get this, sigh.
2019-03-29 21:14:20 -07:00