Behdad Esfahbod [Tue, 16 Apr 2019 15:35:09 +0000 (11:35 -0400)]
Reduce NullPool size
Behdad Esfahbod [Tue, 16 Apr 2019 15:24:42 +0000 (11:24 -0400)]
[meta] Flesh out hb_invoke()
Behdad Esfahbod [Tue, 16 Apr 2019 15:20:16 +0000 (11:20 -0400)]
Comment
Behdad Esfahbod [Tue, 16 Apr 2019 14:50:22 +0000 (10:50 -0400)]
[meta] Add hb_invoke()
Behdad Esfahbod [Tue, 16 Apr 2019 14:45:20 +0000 (10:45 -0400)]
[meta] Add HB_AUTO_RETURN_EXPR, HB_VOID_RETURN_EXPR, hb_priority, hb_has(), hb_get()
The first three based on range-v3.
Behdad Esfahbod [Tue, 16 Apr 2019 13:59:08 +0000 (09:59 -0400)]
Add hb_void_tt<> ala std::void_t
Behdad Esfahbod [Mon, 15 Apr 2019 21:36:09 +0000 (17:36 -0400)]
Fix copyright
Behdad Esfahbod [Mon, 15 Apr 2019 20:53:10 +0000 (16:53 -0400)]
[fuzzing] Run valgrind with --leak-check=full
Behdad Esfahbod [Mon, 15 Apr 2019 20:52:21 +0000 (16:52 -0400)]
[fuzzing] Fail if valgrind is requested but not found
Behdad Esfahbod [Mon, 15 Apr 2019 20:43:34 +0000 (16:43 -0400)]
More tweaks to previous commit
Delete assignment operator of OffsetTo<> instead of Offset<>.
In simple ArrayOf<>::sanitize() assert that Type has assignment operator.
Ideally we should SFINAE this and fallback to calling Type::sanitize()
if assignment operator is not available. But we don't have a case of
that in the codebase.
Behdad Esfahbod [Mon, 15 Apr 2019 20:00:20 +0000 (16:00 -0400)]
Delete default assignment operator Offset<>
Behdad Esfahbod [Mon, 15 Apr 2019 19:39:03 +0000 (15:39 -0400)]
Add HB_FUNCOBJ()
Fixes https://github.com/harfbuzz/harfbuzz/issues/1651
Nathan Willis [Mon, 15 Apr 2019 17:05:14 +0000 (18:05 +0100)]
[Usermanual]: fix Tamil error in Why-do-I-need-a-shaping-engine section.
Behdad Esfahbod [Mon, 15 Apr 2019 16:44:31 +0000 (12:44 -0400)]
Move static const to post-struct for a function object
Just sending this to bots to see if all happy, then turn it into macro and
apply everywhere.
Part of https://github.com/harfbuzz/harfbuzz/issues/1651
Behdad Esfahbod [Mon, 15 Apr 2019 16:07:00 +0000 (12:07 -0400)]
Ugh. Another try, to unbreak gcc this time!
Jenga.
Behdad Esfahbod [Mon, 15 Apr 2019 15:59:57 +0000 (11:59 -0400)]
Move location of HB_UNUSED to make MSVC happy
Behdad Esfahbod [Mon, 15 Apr 2019 15:31:40 +0000 (11:31 -0400)]
Fix gcc warning
Ebrahim Byagowi [Sun, 14 Apr 2019 20:04:04 +0000 (00:34 +0430)]
[ci] Fix macOS glib issue
Behdad Esfahbod [Sat, 13 Apr 2019 02:50:22 +0000 (22:50 -0400)]
Add HB_NO_SUBSET_LAYOUT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Sat, 13 Apr 2019 02:42:44 +0000 (22:42 -0400)]
Revert "Hide symbols in hb-iter"
This reverts commit
98f14c4cdb837a962083a6702f401d41b4c1ec5c.
Same as previous commit.
Behdad Esfahbod [Sat, 13 Apr 2019 02:39:38 +0000 (22:39 -0400)]
Revert "Hide more symbols"
This reverts commit
2e86d50915cf1a791da9acb95245aa820a3d70f4.
I think the setup that caused me to do this is faulty and not hiding inlines.
Behdad Esfahbod [Fri, 12 Apr 2019 22:11:18 +0000 (18:11 -0400)]
Hide symbols in hb-iter
Painful. All template methods need to be explicitly hidden :(.
Maybe we should switch to -fvisibility=hidden pragma.
A LOT more to go.
Behdad Esfahbod [Fri, 12 Apr 2019 22:07:42 +0000 (18:07 -0400)]
Hide more symbols
Exposed by:
$ make -j5 CPPFLAGS="-O0" CXXFLAGS=-flto=thin LDFLAGS=-lc++ && ./check-symbols.sh
Behdad Esfahbod [Fri, 12 Apr 2019 21:59:18 +0000 (17:59 -0400)]
Hide a few more symbols
Exposed by:
$ make CPPFLAGS=-O0
Behdad Esfahbod [Fri, 12 Apr 2019 21:50:03 +0000 (17:50 -0400)]
Hide a few static methods
Looks like static methods that do not get inlined end up exported.
We have a lot more. Need to protect all at some point. Wish there
was an easier way, like the visibility flag we pass that automatically
hides all inline methods.
Was exposed by check-symbols.sh when compiling on OS X 10.14 with:
$ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
Behdad Esfahbod [Fri, 12 Apr 2019 20:21:58 +0000 (16:21 -0400)]
Add HB_NO_OPTIONS
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Fri, 12 Apr 2019 19:00:37 +0000 (15:00 -0400)]
Add HB_NO_NAME_TABLE_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Fri, 12 Apr 2019 18:58:53 +0000 (14:58 -0400)]
Add HB_NO_OT_FONT_BITMAP
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Fri, 12 Apr 2019 18:57:49 +0000 (14:57 -0400)]
Add HB_NO_OT_FONT_CFF
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Fri, 12 Apr 2019 14:16:12 +0000 (10:16 -0400)]
Add HB_NO_OT_SHAPE_COMPLEX_HEBREW_FALLBACK
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Fri, 12 Apr 2019 14:12:11 +0000 (10:12 -0400)]
Add HB_NO_OT_SHAPE_FALLBACK
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Fri, 12 Apr 2019 13:35:29 +0000 (09:35 -0400)]
Add HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Fri, 12 Apr 2019 13:33:25 +0000 (09:33 -0400)]
Add HB_NO_OT_LAYOUT_BLACKLIST
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Thu, 11 Apr 2019 21:54:38 +0000 (17:54 -0400)]
Add HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Nathan Willis [Tue, 2 Apr 2019 17:49:40 +0000 (18:49 +0100)]
Update gtk-doc annotations for inout counts on various getter functions.
Nathan Willis [Sun, 24 Mar 2019 15:07:07 +0000 (15:07 +0000)]
[Docs] Minor edits to gtk-doc inline comment review.
Nathan Willis [Mon, 18 Mar 2019 14:03:16 +0000 (14:03 +0000)]
[Docs] Minor; fix formatting for gtk-doc multiple-annotations.
Nathan Willis [Sun, 17 Mar 2019 14:50:47 +0000 (14:50 +0000)]
[Docs] Annotate gtk-doc formatting with some un-annotated (out)s.
Nathan Willis [Sun, 17 Mar 2019 14:43:06 +0000 (14:43 +0000)]
[Docs] Fix gtk-doc formatting for (out) and (inout).
Nathan Willis [Sun, 17 Mar 2019 14:27:27 +0000 (14:27 +0000)]
[Docs] Fix gtk-doc references to 'kern' table functions, clarifying that GPOS is not examined.
Nathan Willis [Sat, 16 Mar 2019 15:38:08 +0000 (15:38 +0000)]
[Docs] Add inline gtk-doc documentation of GDEF glyph classes.
Nathan Willis [Sat, 16 Mar 2019 15:10:21 +0000 (15:10 +0000)]
[Docs] Add inlind gtk-doc comments for hb-ot-layout functions.
Behdad Esfahbod [Thu, 11 Apr 2019 15:20:10 +0000 (11:20 -0400)]
Use injected class name to simplify macros
Behdad Esfahbod [Thu, 11 Apr 2019 15:18:04 +0000 (11:18 -0400)]
[C++11] Use deleted methods
Behdad Esfahbod [Thu, 11 Apr 2019 15:16:01 +0000 (11:16 -0400)]
Rename a few macros
Behdad Esfahbod [Wed, 10 Apr 2019 19:53:48 +0000 (15:53 -0400)]
[arabic] Disable fallback shaping if HB_NO_OT_SHAPE_COMPLEX_ARABIC_FALLBACK defined
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Wed, 10 Apr 2019 19:40:03 +0000 (15:40 -0400)]
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
Behdad Esfahbod [Wed, 10 Apr 2019 19:38:15 +0000 (15:38 -0400)]
Don't use any default unicode funcs if HB_NO_UNICODE_FUNCS is defined
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod [Mon, 8 Apr 2019 18:50:58 +0000 (14:50 -0400)]
[coretext] Fix unused-variable error
Fixes https://github.com/harfbuzz/harfbuzz/issues/1659
Maks Naumov [Fri, 5 Apr 2019 18:46:27 +0000 (21:46 +0300)]
Fix MSVC C4068 warning (#1656)
Michiharu Ariza [Fri, 5 Apr 2019 17:15:08 +0000 (10:15 -0700)]
replace test font SourceHanSans with its subet
Maks Naumov [Fri, 5 Apr 2019 09:29:56 +0000 (12:29 +0300)]
Fix MSVC C4138 warning (#1657)
Behdad Esfahbod [Wed, 3 Apr 2019 23:24:12 +0000 (16:24 -0700)]
Minor
Behdad Esfahbod [Wed, 3 Apr 2019 23:06:55 +0000 (16:06 -0700)]
[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
Behdad Esfahbod [Wed, 3 Apr 2019 23:06:34 +0000 (16:06 -0700)]
[algs] Add hb_min() and hb_max()
Behdad Esfahbod [Wed, 3 Apr 2019 22:48:27 +0000 (15:48 -0700)]
[serialize] Make putting breakpoint on out-of-memory easier
Behdad Esfahbod [Wed, 3 Apr 2019 22:31:53 +0000 (15:31 -0700)]
[iter] Tweak SFINAE again
Don't think we need hb_is_same().
Behdad Esfahbod [Wed, 3 Apr 2019 22:23:06 +0000 (15:23 -0700)]
[array] Add compy assignment operator since copy constructor is explicit
Behdad Esfahbod [Wed, 3 Apr 2019 21:32:15 +0000 (14:32 -0700)]
[array] Add default copy constructor
MSVC seems to need it.
Behdad Esfahbod [Wed, 3 Apr 2019 21:18:19 +0000 (14:18 -0700)]
[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.
Behdad Esfahbod [Wed, 3 Apr 2019 21:15:01 +0000 (14:15 -0700)]
[meta] Add hb_is_same()
Behdad Esfahbod [Wed, 3 Apr 2019 06:10:03 +0000 (23:10 -0700)]
[serialize] Actually reclaim storage from duplicate objects
Behdad Esfahbod [Wed, 3 Apr 2019 05:42:22 +0000 (22:42 -0700)]
[serialize] Port to use object pool
Tested, but feels fragile :(.
Behdad Esfahbod [Wed, 3 Apr 2019 05:41:06 +0000 (22:41 -0700)]
[pool] Uses memset() instead of assigning Null()
Assignment is invalid on invalid object.
Behdad Esfahbod [Wed, 3 Apr 2019 04:46:40 +0000 (21:46 -0700)]
Add hb_pool_t<> for pooled memory allocation
Behdad Esfahbod [Wed, 3 Apr 2019 03:20:53 +0000 (20:20 -0700)]
[serialize] Disable packed_map again
Ugh. Need to think of something else.
Behdad Esfahbod [Wed, 3 Apr 2019 03:17:27 +0000 (20:17 -0700)]
[map] Protect more against pointer deref
Behdad Esfahbod [Wed, 3 Apr 2019 03:13:16 +0000 (20:13 -0700)]
More
Behdad Esfahbod [Wed, 3 Apr 2019 02:27:02 +0000 (19:27 -0700)]
[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
Behdad Esfahbod [Wed, 3 Apr 2019 01:41:33 +0000 (18:41 -0700)]
[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.
Behdad Esfahbod [Wed, 3 Apr 2019 01:22:39 +0000 (18:22 -0700)]
[array] Use dagger for hashing array
Also switch to better mixing.
Behdad Esfahbod [Wed, 3 Apr 2019 01:12:01 +0000 (18:12 -0700)]
[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.
Behdad Esfahbod [Wed, 3 Apr 2019 00:49:52 +0000 (17:49 -0700)]
[serialize] Towards maintaining packed_map
Behdad Esfahbod [Wed, 3 Apr 2019 00:42:10 +0000 (17:42 -0700)]
[serialize] Minor
Behdad Esfahbod [Wed, 3 Apr 2019 00:21:54 +0000 (17:21 -0700)]
[serialize] Handle non-nullable offsets
Behdad Esfahbod [Wed, 3 Apr 2019 00:20:04 +0000 (17:20 -0700)]
[serialize] Movce empty-object handling earlier
Behdad Esfahbod [Wed, 3 Apr 2019 00:12:24 +0000 (17:12 -0700)]
[serialize] Minor
Behdad Esfahbod [Tue, 2 Apr 2019 23:53:05 +0000 (16:53 -0700)]
[serialize] Allow offset links that have base offset from the object base
Rarely used, but used, in name table or similar constructs.
Ebrahim Byagowi [Tue, 2 Apr 2019 20:18:59 +0000 (00:48 +0430)]
[test][iter] minor, fix double promotion warning
Ebrahim Byagowi [Tue, 2 Apr 2019 15:57:00 +0000 (20:27 +0430)]
[test] minor, c style comments
Ebrahim Byagowi [Tue, 2 Apr 2019 15:55:06 +0000 (20:25 +0430)]
[iter][test] Add another test for hb_reduce
Different initial and accumulator types
Behdad Esfahbod [Tue, 2 Apr 2019 04:36:13 +0000 (21:36 -0700)]
[serialize] Switch to tetris-packing
Behdad Esfahbod [Tue, 2 Apr 2019 04:36:03 +0000 (21:36 -0700)]
[serialize] Fix linking
Behdad Esfahbod [Tue, 2 Apr 2019 04:32:29 +0000 (21:32 -0700)]
[serialize] Minor
Behdad Esfahbod [Mon, 1 Apr 2019 23:50:28 +0000 (16:50 -0700)]
[cmap] Minor
Behdad Esfahbod [Mon, 1 Apr 2019 23:45:50 +0000 (16:45 -0700)]
[subset] Call serialize start/end around it
To be cleaned up.
Behdad Esfahbod [Mon, 1 Apr 2019 23:45:40 +0000 (16:45 -0700)]
[serialize] Assert stack
Behdad Esfahbod [Mon, 1 Apr 2019 23:17:30 +0000 (16:17 -0700)]
[serialize] Add add_link() to add link
Behdad Esfahbod [Mon, 1 Apr 2019 21:17:09 +0000 (14:17 -0700)]
[serialize] Add default template type to push()
Ebrahim Byagowi [Mon, 1 Apr 2019 20:00:06 +0000 (00:30 +0430)]
[iter] hb_reduce, accumulator with a different type
Ebrahim Byagowi [Sun, 31 Mar 2019 08:11:58 +0000 (12:41 +0430)]
[iter] Implement hb_reduce
Behdad Esfahbod [Mon, 1 Apr 2019 04:37:14 +0000 (21:37 -0700)]
[serialize] Implement linking
Untested!
Behdad Esfahbod [Mon, 1 Apr 2019 04:34:19 +0000 (21:34 -0700)]
Move BEInt to hb.hh
I knows...
Behdad Esfahbod [Mon, 1 Apr 2019 02:17:07 +0000 (19:17 -0700)]
[iter] Fix up build, ouch
Yeah, some things not very clear...
Jonathan Kew [Sun, 31 Mar 2019 18:17:32 +0000 (19:17 +0100)]
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
Behdad Esfahbod [Mon, 1 Apr 2019 02:00:09 +0000 (19:00 -0700)]
[iter] Adjust hb_copy() and use it
Untested.
Ebrahim Byagowi [Sun, 31 Mar 2019 08:32:30 +0000 (01:32 -0700)]
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
Behdad Esfahbod [Sun, 31 Mar 2019 02:49:56 +0000 (19:49 -0700)]
[serialize] Start implementing linking
Behdad Esfahbod [Sun, 31 Mar 2019 02:46:35 +0000 (19:46 -0700)]
[serializer] Implement dedup!
Behdad Esfahbod [Sun, 31 Mar 2019 02:41:48 +0000 (19:41 -0700)]
Implement hashing of objects
Should be improved for hb_bytes_t.