platform/upstream/libHarfBuzzSharp.git
5 years agoMinor
Behdad Esfahbod [Wed, 3 Apr 2019 23:24:12 +0000 (16:24 -0700)]
Minor

5 years ago[GDEF] Don't assume glyphlist is sorted
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

5 years ago[algs] Add hb_min() and hb_max()
Behdad Esfahbod [Wed, 3 Apr 2019 23:06:34 +0000 (16:06 -0700)]
[algs] Add hb_min() and hb_max()

5 years ago[serialize] Make putting breakpoint on out-of-memory easier
Behdad Esfahbod [Wed, 3 Apr 2019 22:48:27 +0000 (15:48 -0700)]
[serialize] Make putting breakpoint on out-of-memory easier

5 years ago[iter] Tweak SFINAE again
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().

5 years ago[array] Add compy assignment operator since copy constructor is explicit
Behdad Esfahbod [Wed, 3 Apr 2019 22:23:06 +0000 (15:23 -0700)]
[array] Add compy assignment operator since copy constructor is explicit

5 years ago[array] Add default copy constructor
Behdad Esfahbod [Wed, 3 Apr 2019 21:32:15 +0000 (14:32 -0700)]
[array] Add default copy constructor

MSVC seems to need it.

5 years ago[iter] Use different SFINAE scheme to make MSVC happy
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.

5 years ago[meta] Add hb_is_same()
Behdad Esfahbod [Wed, 3 Apr 2019 21:15:01 +0000 (14:15 -0700)]
[meta] Add hb_is_same()

5 years ago[serialize] Actually reclaim storage from duplicate objects
Behdad Esfahbod [Wed, 3 Apr 2019 06:10:03 +0000 (23:10 -0700)]
[serialize] Actually reclaim storage from duplicate objects

5 years ago[serialize] Port to use object pool
Behdad Esfahbod [Wed, 3 Apr 2019 05:42:22 +0000 (22:42 -0700)]
[serialize] Port to use object pool

Tested, but feels fragile :(.

5 years ago[pool] Uses memset() instead of assigning Null()
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.

5 years agoAdd hb_pool_t<> for pooled memory allocation
Behdad Esfahbod [Wed, 3 Apr 2019 04:46:40 +0000 (21:46 -0700)]
Add hb_pool_t<> for pooled memory allocation

5 years ago[serialize] Disable packed_map again
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.

5 years ago[map] Protect more against pointer deref
Behdad Esfahbod [Wed, 3 Apr 2019 03:17:27 +0000 (20:17 -0700)]
[map] Protect more against pointer deref

5 years agoMore
Behdad Esfahbod [Wed, 3 Apr 2019 03:13:16 +0000 (20:13 -0700)]
More

5 years ago[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
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

5 years ago[iter] Remove passing pointer to hb_iter()
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.

5 years ago[array] Use dagger for hashing array
Behdad Esfahbod [Wed, 3 Apr 2019 01:22:39 +0000 (18:22 -0700)]
[array] Use dagger for hashing array

Also switch to better mixing.

5 years ago[iter] Accept pointers in hb_iter()
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.

5 years ago[serialize] Towards maintaining packed_map
Behdad Esfahbod [Wed, 3 Apr 2019 00:49:52 +0000 (17:49 -0700)]
[serialize] Towards maintaining packed_map

5 years ago[serialize] Minor
Behdad Esfahbod [Wed, 3 Apr 2019 00:42:10 +0000 (17:42 -0700)]
[serialize] Minor

5 years ago[serialize] Handle non-nullable offsets
Behdad Esfahbod [Wed, 3 Apr 2019 00:21:54 +0000 (17:21 -0700)]
[serialize] Handle non-nullable offsets

5 years ago[serialize] Movce empty-object handling earlier
Behdad Esfahbod [Wed, 3 Apr 2019 00:20:04 +0000 (17:20 -0700)]
[serialize] Movce empty-object handling earlier

5 years ago[serialize] Minor
Behdad Esfahbod [Wed, 3 Apr 2019 00:12:24 +0000 (17:12 -0700)]
[serialize] Minor

5 years ago[serialize] Allow offset links that have base offset from the object base
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.

5 years ago[test][iter] minor, fix double promotion warning
Ebrahim Byagowi [Tue, 2 Apr 2019 20:18:59 +0000 (00:48 +0430)]
[test][iter] minor, fix double promotion warning

5 years ago[test] minor, c style comments
Ebrahim Byagowi [Tue, 2 Apr 2019 15:57:00 +0000 (20:27 +0430)]
[test] minor, c style comments

5 years ago[iter][test] Add another test for hb_reduce
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

5 years ago[serialize] Switch to tetris-packing
Behdad Esfahbod [Tue, 2 Apr 2019 04:36:13 +0000 (21:36 -0700)]
[serialize] Switch to tetris-packing

5 years ago[serialize] Fix linking
Behdad Esfahbod [Tue, 2 Apr 2019 04:36:03 +0000 (21:36 -0700)]
[serialize] Fix linking

5 years ago[serialize] Minor
Behdad Esfahbod [Tue, 2 Apr 2019 04:32:29 +0000 (21:32 -0700)]
[serialize] Minor

5 years ago[cmap] Minor
Behdad Esfahbod [Mon, 1 Apr 2019 23:50:28 +0000 (16:50 -0700)]
[cmap] Minor

5 years ago[subset] Call serialize start/end around it
Behdad Esfahbod [Mon, 1 Apr 2019 23:45:50 +0000 (16:45 -0700)]
[subset] Call serialize start/end around it

To be cleaned up.

5 years ago[serialize] Assert stack
Behdad Esfahbod [Mon, 1 Apr 2019 23:45:40 +0000 (16:45 -0700)]
[serialize] Assert stack

5 years ago[serialize] Add add_link() to add link
Behdad Esfahbod [Mon, 1 Apr 2019 23:17:30 +0000 (16:17 -0700)]
[serialize] Add add_link() to add link

5 years ago[serialize] Add default template type to push()
Behdad Esfahbod [Mon, 1 Apr 2019 21:17:09 +0000 (14:17 -0700)]
[serialize] Add default template type to push()

5 years ago[iter] hb_reduce, accumulator with a different type
Ebrahim Byagowi [Mon, 1 Apr 2019 20:00:06 +0000 (00:30 +0430)]
[iter] hb_reduce, accumulator with a different type

5 years ago[iter] Implement hb_reduce
Ebrahim Byagowi [Sun, 31 Mar 2019 08:11:58 +0000 (12:41 +0430)]
[iter] Implement hb_reduce

5 years ago[serialize] Implement linking
Behdad Esfahbod [Mon, 1 Apr 2019 04:37:14 +0000 (21:37 -0700)]
[serialize] Implement linking

Untested!

5 years agoMove BEInt to hb.hh
Behdad Esfahbod [Mon, 1 Apr 2019 04:34:19 +0000 (21:34 -0700)]
Move BEInt to hb.hh

I knows...

5 years ago[iter] Fix up build, ouch
Behdad Esfahbod [Mon, 1 Apr 2019 02:17:07 +0000 (19:17 -0700)]
[iter] Fix up build, ouch

Yeah, some things not very clear...

5 years agoDon't skip setting the .end field of the first range
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

5 years ago[iter] Adjust hb_copy() and use it
Behdad Esfahbod [Mon, 1 Apr 2019 02:00:09 +0000 (19:00 -0700)]
[iter] Adjust hb_copy() and use it

Untested.

5 years agoRemove coretext_aat shaper (#1581)
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

5 years ago[serialize] Start implementing linking
Behdad Esfahbod [Sun, 31 Mar 2019 02:49:56 +0000 (19:49 -0700)]
[serialize] Start implementing linking

5 years ago[serializer] Implement dedup!
Behdad Esfahbod [Sun, 31 Mar 2019 02:46:35 +0000 (19:46 -0700)]
[serializer] Implement dedup!

5 years agoImplement hashing of objects
Behdad Esfahbod [Sun, 31 Mar 2019 02:41:48 +0000 (19:41 -0700)]
Implement hashing of objects

Should be improved for hb_bytes_t.

5 years agoFix hb_hash(pointer)
Behdad Esfahbod [Sun, 31 Mar 2019 02:31:51 +0000 (19:31 -0700)]
Fix hb_hash(pointer)

5 years ago[serialize] Don't insert empty object into tree
Behdad Esfahbod [Sun, 31 Mar 2019 02:26:37 +0000 (19:26 -0700)]
[serialize] Don't insert empty object into tree

5 years ago[serialize] Towards maintaining hashmap
Behdad Esfahbod [Sun, 31 Mar 2019 02:16:20 +0000 (19:16 -0700)]
[serialize] Towards maintaining hashmap

5 years ago[serialize] Only pack main object if there are other objects
Behdad Esfahbod [Sun, 31 Mar 2019 02:05:51 +0000 (19:05 -0700)]
[serialize] Only pack main object if there are other objects

Avoids a memmove for tables that don't use the object packing mechanism.

5 years ago[serialize] Copy both sides of the buffer
Behdad Esfahbod [Sun, 31 Mar 2019 02:03:55 +0000 (19:03 -0700)]
[serialize] Copy both sides of the buffer

5 years ago[serialize] Simplify copy
Behdad Esfahbod [Sun, 31 Mar 2019 02:01:23 +0000 (19:01 -0700)]
[serialize] Simplify copy

5 years ago[serializer] Unbreak for now
Behdad Esfahbod [Sun, 31 Mar 2019 01:48:26 +0000 (18:48 -0700)]
[serializer] Unbreak for now

5 years ago[map] Shuffle fini code
Behdad Esfahbod [Sun, 31 Mar 2019 01:44:01 +0000 (18:44 -0700)]
[map] Shuffle fini code

5 years ago[vector] Add move semantics
Behdad Esfahbod [Sun, 31 Mar 2019 01:33:30 +0000 (18:33 -0700)]
[vector] Add move semantics

5 years ago[vector] Add some move and forwarding
Behdad Esfahbod [Sun, 31 Mar 2019 01:30:50 +0000 (18:30 -0700)]
[vector] Add some move and forwarding

5 years ago[meta] Add hb_move and hb_forward ala std::
Behdad Esfahbod [Sun, 31 Mar 2019 01:19:36 +0000 (18:19 -0700)]
[meta] Add hb_move and hb_forward ala std::

5 years ago[serialize] Flesh out packing
Behdad Esfahbod [Sun, 31 Mar 2019 01:14:30 +0000 (18:14 -0700)]
[serialize] Flesh out packing

5 years ago[vector] Add copy constructor and assignment operator
Behdad Esfahbod [Sun, 31 Mar 2019 01:13:57 +0000 (18:13 -0700)]
[vector] Add copy constructor and assignment operator

5 years ago[serialize] Minor
Behdad Esfahbod [Sun, 31 Mar 2019 01:00:03 +0000 (18:00 -0700)]
[serialize] Minor

5 years ago[serialize] Add packed_map
Behdad Esfahbod [Sun, 31 Mar 2019 00:51:26 +0000 (17:51 -0700)]
[serialize] Add packed_map

5 years ago[serialize] Start fleshing out object stack
Behdad Esfahbod [Sun, 31 Mar 2019 00:26:35 +0000 (17:26 -0700)]
[serialize] Start fleshing out object stack

5 years ago[serialize] Simplify propagate_error()
Behdad Esfahbod [Sun, 31 Mar 2019 00:12:40 +0000 (17:12 -0700)]
[serialize] Simplify propagate_error()

5 years ago[serialize] Add object_t, link_t, and snapshot_t
Behdad Esfahbod [Sun, 31 Mar 2019 00:10:59 +0000 (17:10 -0700)]
[serialize] Add object_t, link_t, and snapshot_t

5 years ago[map] Add another TODO item
Behdad Esfahbod [Sat, 30 Mar 2019 23:38:06 +0000 (16:38 -0700)]
[map] Add another TODO item

5 years ago[map] Add TODO
Behdad Esfahbod [Sat, 30 Mar 2019 23:29:19 +0000 (16:29 -0700)]
[map] Add TODO

5 years ago[serialize] Add unused 'tail'
Behdad Esfahbod [Sat, 30 Mar 2019 22:08:39 +0000 (15:08 -0700)]
[serialize] Add unused 'tail'

5 years ago[serialize] Add ran_out_of_room
Behdad Esfahbod [Sat, 30 Mar 2019 22:06:25 +0000 (15:06 -0700)]
[serialize] Add ran_out_of_room

5 years agoSplit sanitize and dispatch into their own files
Behdad Esfahbod [Sat, 30 Mar 2019 21:59:40 +0000 (14:59 -0700)]
Split sanitize and dispatch into their own files

5 years agoMove serializer to hb-serialize.hh
Behdad Esfahbod [Sat, 30 Mar 2019 21:53:54 +0000 (14:53 -0700)]
Move serializer to hb-serialize.hh

5 years agoWhitespace
Behdad Esfahbod [Sat, 30 Mar 2019 21:46:54 +0000 (14:46 -0700)]
Whitespace

5 years ago[map] Deref pointers before equality check
Behdad Esfahbod [Sat, 30 Mar 2019 21:39:21 +0000 (14:39 -0700)]
[map] Deref pointers before equality check

5 years ago[map] Templatize hb_map_t
Behdad Esfahbod [Sat, 30 Mar 2019 21:30:22 +0000 (14:30 -0700)]
[map] Templatize hb_map_t

Template name is hb_hashmap_t<K,V>.

5 years agoAdd hb_deref_pointer()
Behdad Esfahbod [Sat, 30 Mar 2019 20:48:32 +0000 (13:48 -0700)]
Add hb_deref_pointer()

5 years ago[iter] Fix bug in hb_any() and hb_none()
Behdad Esfahbod [Sat, 30 Mar 2019 06:31:07 +0000 (23:31 -0700)]
[iter] Fix bug in hb_any() and hb_none()

5 years ago[iter] Port remaining "for (auto" instances to daggers
Behdad Esfahbod [Sat, 30 Mar 2019 05:55:02 +0000 (22:55 -0700)]
[iter] Port remaining "for (auto" instances to daggers

5 years ago[iter] One more dagger
Behdad Esfahbod [Sat, 30 Mar 2019 05:48:38 +0000 (22:48 -0700)]
[iter] One more dagger

5 years ago[iter] Remove more wrong &&'s
Behdad Esfahbod [Sat, 30 Mar 2019 05:48:12 +0000 (22:48 -0700)]
[iter] Remove more wrong &&'s

Sigh...

5 years ago[iter] More daggers
Behdad Esfahbod [Sat, 30 Mar 2019 05:40:13 +0000 (22:40 -0700)]
[iter] More daggers

5 years ago[iter] More daggers
Behdad Esfahbod [Sat, 30 Mar 2019 05:27:46 +0000 (22:27 -0700)]
[iter] More daggers

5 years ago[iter] One more dagger
Behdad Esfahbod [Sat, 30 Mar 2019 05:17:31 +0000 (22:17 -0700)]
[iter] One more dagger

5 years agoRemove HB_DEBUG_WOULD_APPLY
Behdad Esfahbod [Sat, 30 Mar 2019 05:12:42 +0000 (22:12 -0700)]
Remove HB_DEBUG_WOULD_APPLY

Not that useful.

5 years ago[iter] Port more to daggers
Behdad Esfahbod [Sat, 30 Mar 2019 05:04:15 +0000 (22:04 -0700)]
[iter] Port more to daggers

5 years agoWhitespace
Behdad Esfahbod [Sat, 30 Mar 2019 04:59:28 +0000 (21:59 -0700)]
Whitespace

5 years agoSimplify code
Behdad Esfahbod [Sat, 30 Mar 2019 04:57:26 +0000 (21:57 -0700)]
Simplify code

5 years ago[iter] Port one more function to dagger
Behdad Esfahbod [Sat, 30 Mar 2019 04:57:17 +0000 (21:57 -0700)]
[iter] Port one more function to dagger

5 years ago[iter] Port more code to daggers
Behdad Esfahbod [Sat, 30 Mar 2019 04:49:18 +0000 (21:49 -0700)]
[iter] Port more code to daggers

5 years ago[iter] Port two more functions to daggers
Behdad Esfahbod [Sat, 30 Mar 2019 04:46:13 +0000 (21:46 -0700)]
[iter] Port two more functions to daggers

5 years agoFix pair signature
Behdad Esfahbod [Sat, 30 Mar 2019 04:45:49 +0000 (21:45 -0700)]
Fix pair signature

Oh well.  Again, who does fully understand what is right???

5 years ago[iter] Add hb_unzip()
Behdad Esfahbod [Sat, 30 Mar 2019 04:36:49 +0000 (21:36 -0700)]
[iter] Add hb_unzip()

5 years agoWhitespace
Behdad Esfahbod [Sat, 30 Mar 2019 04:17:08 +0000 (21:17 -0700)]
Whitespace

5 years ago[iter] Port two more loops to dagger
Behdad Esfahbod [Sat, 30 Mar 2019 04:16:30 +0000 (21:16 -0700)]
[iter] Port two more loops to dagger

5 years ago[iter] Remove unneeded &&
Behdad Esfahbod [Sat, 30 Mar 2019 04:14:20 +0000 (21:14 -0700)]
[iter] Remove unneeded &&

Next commit needs this.  I never fully get this, sigh.

5 years agoWhitespace
Behdad Esfahbod [Sat, 30 Mar 2019 04:06:10 +0000 (21:06 -0700)]
Whitespace

5 years agoRemove hb_assign()
Behdad Esfahbod [Sat, 30 Mar 2019 03:23:07 +0000 (20:23 -0700)]
Remove hb_assign()

Not needed anymore.  We just use operator= now.

5 years ago[C++11] Remove IntType::set() in favor of operator=
Behdad Esfahbod [Sat, 30 Mar 2019 03:17:46 +0000 (20:17 -0700)]
[C++11] Remove IntType::set() in favor of operator=

5 years ago[vector] Accept all types in push(...)
Behdad Esfahbod [Sat, 30 Mar 2019 03:05:19 +0000 (20:05 -0700)]
[vector] Accept all types in push(...)

Let assignment operator worry about conversion.

5 years ago[C++11] Use type aliases for template partial instantiations
Behdad Esfahbod [Sat, 30 Mar 2019 03:01:37 +0000 (20:01 -0700)]
[C++11] Use type aliases for template partial instantiations