platform/upstream/libHarfBuzzSharp.git
5 years ago[lazy] Port more
Behdad Esfahbod [Mon, 13 Aug 2018 00:32:10 +0000 (17:32 -0700)]
[lazy] Port more

5 years ago[lazy] Rename free()
Behdad Esfahbod [Mon, 13 Aug 2018 00:19:55 +0000 (17:19 -0700)]
[lazy] Rename free()

5 years ago[lazy] Port more to it
Behdad Esfahbod [Mon, 13 Aug 2018 00:14:32 +0000 (17:14 -0700)]
[lazy] Port more to it

5 years ago[lazy] Make hb_lazy_loader_t<> more usable
Behdad Esfahbod [Sun, 12 Aug 2018 23:57:06 +0000 (16:57 -0700)]
[lazy] Make hb_lazy_loader_t<> more usable

5 years ago[lazy] Minor
Behdad Esfahbod [Sun, 12 Aug 2018 23:40:08 +0000 (16:40 -0700)]
[lazy] Minor

5 years agoMinor
Behdad Esfahbod [Sun, 12 Aug 2018 23:33:48 +0000 (16:33 -0700)]
Minor

5 years ago[icu] Use get_relaxed for normalizer access
Behdad Esfahbod [Sun, 12 Aug 2018 23:30:39 +0000 (16:30 -0700)]
[icu] Use get_relaxed for normalizer access

We've had the proper barriers already.  No need for more with every access.

5 years ago[icu] Fix for breakage after recent change
Behdad Esfahbod [Sun, 12 Aug 2018 23:29:41 +0000 (16:29 -0700)]
[icu] Fix for breakage after recent change

5 years ago[lazy] Use for ft_library
Behdad Esfahbod [Sun, 12 Aug 2018 23:20:11 +0000 (16:20 -0700)]
[lazy] Use for ft_library

5 years ago[lazy] Add .free()
Behdad Esfahbod [Sun, 12 Aug 2018 23:00:13 +0000 (16:00 -0700)]
[lazy] Add .free()

5 years ago[ot/ft] Port font_funcs statis to lazy-loader
Behdad Esfahbod [Sun, 12 Aug 2018 20:46:53 +0000 (13:46 -0700)]
[ot/ft] Port font_funcs statis to lazy-loader

5 years ago[ucdn/glib/icu] Port unicode_funcs statics to lazy-loader
Behdad Esfahbod [Sun, 12 Aug 2018 20:39:01 +0000 (13:39 -0700)]
[ucdn/glib/icu] Port unicode_funcs statics to lazy-loader

5 years ago[lazy] Allow calling fini() multiple times
Behdad Esfahbod [Sun, 12 Aug 2018 20:16:40 +0000 (13:16 -0700)]
[lazy] Allow calling fini() multiple times

5 years ago[lazy] More
Behdad Esfahbod [Sun, 12 Aug 2018 20:12:29 +0000 (13:12 -0700)]
[lazy] More

5 years ago[lazy] More shuffle
Behdad Esfahbod [Sun, 12 Aug 2018 19:40:24 +0000 (12:40 -0700)]
[lazy] More shuffle

5 years agoMinor
Behdad Esfahbod [Sun, 12 Aug 2018 19:27:47 +0000 (12:27 -0700)]
Minor

5 years agoAdd explicit_operator
Behdad Esfahbod [Sun, 12 Aug 2018 19:21:56 +0000 (12:21 -0700)]
Add explicit_operator

Fixes https://github.com/harfbuzz/harfbuzz/issues/1127

5 years agoRename
Behdad Esfahbod [Sun, 12 Aug 2018 19:09:20 +0000 (12:09 -0700)]
Rename

5 years agoSupport _ in feature ids
Martin Hosken [Thu, 9 Aug 2018 08:16:32 +0000 (15:16 +0700)]
Support _ in feature ids

5 years ago[coretext] Another try
Behdad Esfahbod [Thu, 9 Aug 2018 08:02:02 +0000 (01:02 -0700)]
[coretext] Another try

5 years agoFix coretext build (hopefully)
Behdad Esfahbod [Thu, 9 Aug 2018 07:58:17 +0000 (00:58 -0700)]
Fix coretext build (hopefully)

5 years agoRevert "[iter] Make operator bool explicit"
Behdad Esfahbod [Thu, 9 Aug 2018 07:56:28 +0000 (00:56 -0700)]
Revert "[iter] Make operator bool explicit"

This reverts commit 66920a6bace7c54c8166c4ed938b6ffc5fabcf2b.

Some of our bots (Oracle Studio and Apple gcc 4.2) do not allow
explicit except for constructors.

https://github.com/harfbuzz/harfbuzz/issues/1127

5 years ago[atomic] More
Behdad Esfahbod [Thu, 9 Aug 2018 07:53:25 +0000 (00:53 -0700)]
[atomic] More

5 years agoFix lazy_loader fini()
Behdad Esfahbod [Thu, 9 Aug 2018 07:28:40 +0000 (00:28 -0700)]
Fix lazy_loader fini()

Was creating object even if wasn't there.

5 years ago[atomic] Add hb_atomic_ptr_t<> and port all uses
Behdad Esfahbod [Thu, 9 Aug 2018 07:22:37 +0000 (00:22 -0700)]
[atomic] Add hb_atomic_ptr_t<> and port all uses

Found and fixed a couple bugs.

Found a couple multithreading issues.  Marked them with "XXX-MT-bug".

5 years ago[atomic] Remove hb_atomic_int_impl_t now that it's always int
Behdad Esfahbod [Thu, 9 Aug 2018 05:51:35 +0000 (22:51 -0700)]
[atomic] Remove hb_atomic_int_impl_t now that it's always int

5 years ago[atomic] Unify typedef
Behdad Esfahbod [Thu, 9 Aug 2018 05:45:49 +0000 (22:45 -0700)]
[atomic] Unify typedef

Removes volatile from fallback implementation.  That was handwavy
anyway.

5 years ago[atomic] Change Mac atomic int type to int
Behdad Esfahbod [Thu, 9 Aug 2018 05:43:53 +0000 (22:43 -0700)]
[atomic] Change Mac atomic int type to int

If ever int is not 32bit, we'll fix this...

5 years ago[atomic] Change Windows atomic int type to int
Behdad Esfahbod [Thu, 9 Aug 2018 05:42:33 +0000 (22:42 -0700)]
[atomic] Change Windows atomic int type to int

5 years ago[atomic] Change Solaris atomic int to signed
Behdad Esfahbod [Thu, 9 Aug 2018 05:40:10 +0000 (22:40 -0700)]
[atomic] Change Solaris atomic int to signed

5 years ago1.8.7
Behdad Esfahbod [Thu, 9 Aug 2018 04:54:08 +0000 (21:54 -0700)]
1.8.7

5 years agoFix previous commit to use atomic operations
Behdad Esfahbod [Thu, 9 Aug 2018 05:01:04 +0000 (22:01 -0700)]
Fix previous commit to use atomic operations

5 years agoFix assertion failure
Behdad Esfahbod [Thu, 9 Aug 2018 04:42:18 +0000 (21:42 -0700)]
Fix assertion failure

https://bugzilla.mozilla.org/show_bug.cgi?id=1476334

5 years ago1.8.6
Behdad Esfahbod [Tue, 7 Aug 2018 16:55:42 +0000 (09:55 -0700)]
1.8.6

5 years agoAdd +hb_font_get_glyph_advances_for_direction
Behdad Esfahbod [Tue, 7 Aug 2018 16:52:06 +0000 (09:52 -0700)]
Add +hb_font_get_glyph_advances_for_direction

New API:
+hb_font_get_glyph_advances_for_direction

5 years agoActually add hb_font_get_glyph_[hv]_advances
Behdad Esfahbod [Tue, 7 Aug 2018 16:47:00 +0000 (09:47 -0700)]
Actually add hb_font_get_glyph_[hv]_advances

New API:
+hb_font_get_glyph_h_advances
+hb_font_get_glyph_v_advances

5 years agoMinor
Behdad Esfahbod [Tue, 7 Aug 2018 16:44:01 +0000 (09:44 -0700)]
Minor

5 years agoRemove get_advances_nil and alias it to get_advances_default
Behdad Esfahbod [Tue, 7 Aug 2018 16:37:52 +0000 (09:37 -0700)]
Remove get_advances_nil and alias it to get_advances_default

5 years ago[iter] Make operator bool explicit
Behdad Esfahbod [Mon, 6 Aug 2018 22:32:13 +0000 (15:32 -0700)]
[iter] Make operator bool explicit

We would need to write:

  for (Iter<T> it (...); bool (t); t++)

instead of:

  for (Iter<T> it (...); t; t++)

But I think it's an improvement in code readability in the long term.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1127

5 years agoAdd batch advance width callback function
Behdad Esfahbod [Mon, 6 Aug 2018 16:45:17 +0000 (09:45 -0700)]
Add batch advance width callback function

New API:
+hb_font_funcs_set_glyph_h_advances_func
+hb_font_funcs_set_glyph_v_advances_func
+hb_font_get_glyph_h_advances
+hb_font_get_glyph_h_advances_func_t
+hb_font_get_glyph_v_advances
+hb_font_get_glyph_v_advances_func_t

5 years agobatchwidth
Koji Ishii [Wed, 1 Aug 2018 04:01:08 +0000 (13:01 +0900)]
batchwidth

5 years agoRemove most uses of direct comparison to Null objects
Behdad Esfahbod [Mon, 6 Aug 2018 13:30:12 +0000 (06:30 -0700)]
Remove most uses of direct comparison to Null objects

5 years agoPort _nil objects to Null() machinery
Behdad Esfahbod [Mon, 6 Aug 2018 13:17:48 +0000 (06:17 -0700)]
Port _nil objects to Null() machinery

Finally, unified!

5 years ago[BASE] Rename horzi/vert to h/v
Behdad Esfahbod [Mon, 6 Aug 2018 12:53:35 +0000 (05:53 -0700)]
[BASE] Rename horzi/vert to h/v

5 years ago[BASE] Misc fixes
Behdad Esfahbod [Mon, 6 Aug 2018 12:52:12 +0000 (05:52 -0700)]
[BASE] Misc fixes

The code was badly broken.  In better shape now, but still, needs
a full review before ever working.

5 years agoChange null-pool specialization to min_size again
Behdad Esfahbod [Mon, 6 Aug 2018 12:29:15 +0000 (05:29 -0700)]
Change null-pool specialization to min_size again

5 years agoMove Null system to hb-null.hh
Behdad Esfahbod [Mon, 6 Aug 2018 12:01:52 +0000 (05:01 -0700)]
Move Null system to hb-null.hh

5 years agoRemove unused macros
Behdad Esfahbod [Mon, 6 Aug 2018 11:58:34 +0000 (04:58 -0700)]
Remove unused macros

5 years agoMinor
Behdad Esfahbod [Mon, 6 Aug 2018 11:54:31 +0000 (04:54 -0700)]
Minor

5 years agoMinor
Behdad Esfahbod [Mon, 6 Aug 2018 11:51:38 +0000 (04:51 -0700)]
Minor

5 years agoMove hb_vector_t to hb-vector-private.hh
Behdad Esfahbod [Mon, 6 Aug 2018 11:42:46 +0000 (04:42 -0700)]
Move hb_vector_t to hb-vector-private.hh

5 years agoMove some more code around
Behdad Esfahbod [Mon, 6 Aug 2018 11:32:51 +0000 (04:32 -0700)]
Move some more code around

5 years agoMove null data definitions to hb-static.cc
Behdad Esfahbod [Mon, 6 Aug 2018 04:41:52 +0000 (21:41 -0700)]
Move null data definitions to hb-static.cc

Also remove "    " null data for Tag.  Just use zeroes.

5 years agoMinor
Behdad Esfahbod [Sat, 4 Aug 2018 02:55:09 +0000 (19:55 -0700)]
Minor

5 years agoMake lazy loader deal with OOM
Behdad Esfahbod [Sat, 4 Aug 2018 02:54:33 +0000 (19:54 -0700)]
Make lazy loader deal with OOM

5 years agoRename
Behdad Esfahbod [Sat, 4 Aug 2018 00:32:00 +0000 (17:32 -0700)]
Rename

5 years ago[ot] Comment
Behdad Esfahbod [Sat, 4 Aug 2018 00:06:42 +0000 (17:06 -0700)]
[ot] Comment

5 years ago[ot] Add misc tables to tables_t
Behdad Esfahbod [Sat, 4 Aug 2018 00:03:32 +0000 (17:03 -0700)]
[ot] Add misc tables to tables_t

Most unused.

5 years ago[ot] Move GDEF into tables_t
Behdad Esfahbod [Fri, 3 Aug 2018 23:57:40 +0000 (16:57 -0700)]
[ot] Move GDEF into tables_t

5 years ago[ot] Move GSUB/GPOS into tables_t
Behdad Esfahbod [Fri, 3 Aug 2018 23:45:57 +0000 (16:45 -0700)]
[ot] Move GSUB/GPOS into tables_t

5 years ago[ot] More shuffling
Behdad Esfahbod [Fri, 3 Aug 2018 23:34:25 +0000 (16:34 -0700)]
[ot] More shuffling

Misc. table loading now properly automated.

5 years ago[ot] Minor
Behdad Esfahbod [Fri, 3 Aug 2018 23:22:16 +0000 (16:22 -0700)]
[ot] Minor

5 years ago[ot] Move code around
Behdad Esfahbod [Fri, 3 Aug 2018 06:13:19 +0000 (23:13 -0700)]
[ot] Move code around

5 years ago[ot] Use switch for checking for blacklisted GDEF tables
Behdad Esfahbod [Fri, 3 Aug 2018 06:04:42 +0000 (23:04 -0700)]
[ot] Use switch for checking for blacklisted GDEF tables

Faster / more compact code.

5 years ago[ot] In GDEF blacklisting logic, remove the glyph index check for Times
Behdad Esfahbod [Fri, 3 Aug 2018 05:56:42 +0000 (22:56 -0700)]
[ot] In GDEF blacklisting logic, remove the glyph index check for Times

Just blacklist based on table sizes like we do for other fonts.

5 years agoMove code around
Behdad Esfahbod [Fri, 3 Aug 2018 03:04:37 +0000 (20:04 -0700)]
Move code around

5 years agoMinor
Behdad Esfahbod [Thu, 2 Aug 2018 09:22:38 +0000 (02:22 -0700)]
Minor

5 years agoFix for recent rename
Behdad Esfahbod [Thu, 2 Aug 2018 09:04:02 +0000 (02:04 -0700)]
Fix for recent rename

5 years ago[uniscribe] Update for recent changes
Behdad Esfahbod [Thu, 2 Aug 2018 09:03:13 +0000 (02:03 -0700)]
[uniscribe] Update for recent changes

5 years agoRemove unused table reference
Behdad Esfahbod [Thu, 2 Aug 2018 08:44:20 +0000 (01:44 -0700)]
Remove unused table reference

5 years agoMinor
Behdad Esfahbod [Thu, 2 Aug 2018 08:41:19 +0000 (01:41 -0700)]
Minor

5 years agoMake lazy-loader safe for nil objectification
Behdad Esfahbod [Thu, 2 Aug 2018 08:37:57 +0000 (01:37 -0700)]
Make lazy-loader safe for nil objectification

5 years agoMinor
Behdad Esfahbod [Thu, 2 Aug 2018 08:36:08 +0000 (01:36 -0700)]
Minor

5 years agoReduce storage by sharing face amongst lazy_loaders
Behdad Esfahbod [Thu, 2 Aug 2018 08:27:40 +0000 (01:27 -0700)]
Reduce storage by sharing face amongst lazy_loaders

5 years agoInternal templatization of lazy-loaders
Behdad Esfahbod [Thu, 2 Aug 2018 07:38:46 +0000 (00:38 -0700)]
Internal templatization of lazy-loaders

5 years agoRemove OT namespace from hb-machinery-private.hh
Behdad Esfahbod [Thu, 2 Aug 2018 06:59:09 +0000 (23:59 -0700)]
Remove OT namespace from hb-machinery-private.hh

5 years agoMinor
Behdad Esfahbod [Thu, 2 Aug 2018 05:50:45 +0000 (22:50 -0700)]
Minor

5 years ago[face] Sprinkle const in the API
Behdad Esfahbod [Thu, 2 Aug 2018 05:50:06 +0000 (22:50 -0700)]
[face] Sprinkle const in the API

5 years agoRename
Behdad Esfahbod [Thu, 2 Aug 2018 01:03:32 +0000 (18:03 -0700)]
Rename

5 years agoAdd comment re (our only) race condition
Behdad Esfahbod [Thu, 2 Aug 2018 00:53:30 +0000 (17:53 -0700)]
Add comment re (our only) race condition

5 years ago1.8.5
Behdad Esfahbod [Wed, 1 Aug 2018 21:51:51 +0000 (14:51 -0700)]
1.8.5

5 years ago[atomic] Fix Solaris ones to add proper barriers
Behdad Esfahbod [Wed, 1 Aug 2018 21:13:59 +0000 (14:13 -0700)]
[atomic] Fix Solaris ones to add proper barriers

5 years ago[atomic] Remove volatile from IBM impl signature
Behdad Esfahbod [Wed, 1 Aug 2018 21:02:39 +0000 (14:02 -0700)]
[atomic] Remove volatile from IBM impl signature

5 years ago[atomic] Oops
Behdad Esfahbod [Wed, 1 Aug 2018 21:00:46 +0000 (14:00 -0700)]
[atomic] Oops

5 years ago[atomic] Use read-barrier for get()
Behdad Esfahbod [Wed, 1 Aug 2018 20:59:59 +0000 (13:59 -0700)]
[atomic] Use read-barrier for get()

5 years ago[atomic] Some more minor tweaks
Behdad Esfahbod [Wed, 1 Aug 2018 20:59:31 +0000 (13:59 -0700)]
[atomic] Some more minor tweaks

5 years ago[ci] Fix Appveyor bot (#1123)
Ebrahim Byagowi [Wed, 1 Aug 2018 19:41:43 +0000 (00:11 +0430)]
[ci] Fix Appveyor bot (#1123)

5 years agoRevert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" (#1121)
Ebrahim Byagowi [Wed, 1 Aug 2018 07:45:44 +0000 (12:15 +0430)]
Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" (#1121)

This reverts commit 0c1b287b72e91e0898d75acb5d5acf1c6b9a7498.

5 years ago[atomic] Fix cast to fallback ptr_get()
Behdad Esfahbod [Wed, 1 Aug 2018 07:22:18 +0000 (00:22 -0700)]
[atomic] Fix cast to fallback ptr_get()

5 years ago[gobject] Fix copy/paste error
Behdad Esfahbod [Wed, 1 Aug 2018 07:19:25 +0000 (00:19 -0700)]
[gobject] Fix copy/paste error

5 years ago[atomic] On IBM, use light-weight sync for everything
Behdad Esfahbod [Wed, 1 Aug 2018 06:01:05 +0000 (23:01 -0700)]
[atomic] On IBM, use light-weight sync for everything

lwsync() is a full read/write-barrier.  That's all we need, never
need sync().  I'm not sure why an isync() was used in fetch_and_add,
but since that's a read-modify-write, I just changed it to have
lwsync() on both sides.

5 years ago[atomic] Add XXX items around Solaris ops
Behdad Esfahbod [Wed, 1 Aug 2018 06:00:15 +0000 (23:00 -0700)]
[atomic] Add XXX items around Solaris ops

Since add_int and cas are both read-modify-write, I wonder if we
also need a barrier after them.

5 years ago[atomic] Fix get() impl
Behdad Esfahbod [Wed, 1 Aug 2018 05:51:38 +0000 (22:51 -0700)]
[atomic] Fix get() impl

Originally, glib's atomic_get was implemented as "memory_barrier; load".
I copied this into cairo, fontconfig, and harfbuzz.  However, that's
wrong.  Correct way is "load; memory_barrier".  The details are long
and hard to fully grasp.  Best to read:

  https://www.kernel.org/doc/Documentation/memory-barriers.txt

Also see my report against GNOME:

  https://gitlab.gnome.org/GNOME/glib/issues/1449

Note that this is irrelevant if C++11-like atomic ops are available.

5 years ago[gobject] Hook up hb_map_t
Behdad Esfahbod [Wed, 1 Aug 2018 05:28:28 +0000 (22:28 -0700)]
[gobject] Hook up hb_map_t

5 years ago[atomic] Fix fallback impl
Behdad Esfahbod [Wed, 1 Aug 2018 05:21:21 +0000 (22:21 -0700)]
[atomic] Fix fallback impl

5 years ago[atomic] Add get_relaxed / set_relaxed
Behdad Esfahbod [Wed, 1 Aug 2018 04:05:51 +0000 (21:05 -0700)]
[atomic] Add get_relaxed / set_relaxed

To help TSan and be more "correct".

5 years ago[atomic] Use CONSUME, not ACQUIRE, memory-order for get()
Behdad Esfahbod [Wed, 1 Aug 2018 02:33:37 +0000 (19:33 -0700)]
[atomic] Use CONSUME, not ACQUIRE, memory-order for get()

Although, all implementations just elevate that to ACQUIRE.
But requirement for us is just CONSUME.

5 years agoRevert "[atomic] Make pointer get op relaxed instead of acquire"
Behdad Esfahbod [Wed, 1 Aug 2018 02:29:49 +0000 (19:29 -0700)]
Revert "[atomic] Make pointer get op relaxed instead of acquire"

This reverts commit b1e5650c67266dc158f22355fed206cd1c413f70.

After lots of head-scratching and finally finding the only truly
readable source to be the good old:

  https://www.kernel.org/doc/Documentation/memory-barriers.txt

I've convinced myself that we need consume memory-ordering on get().
The location of memory-barrier in a load should be after, not before
the load.  That needs fixing.  I'll do that separately.

5 years ago[subset] limit the max codepoint value to the unicode limit.
Garret Rieger [Wed, 1 Aug 2018 00:44:02 +0000 (17:44 -0700)]
[subset] limit the max codepoint value to the unicode limit.
When collecting all codepoints in the cmap avoid using large amount of memory for fonts that declare coverage over all 32 bit integers.

5 years ago[subset] Add hb_ot_layout_collect_features to harfbuzz-sections.txt.
Garret Rieger [Wed, 1 Aug 2018 00:59:19 +0000 (17:59 -0700)]
[subset] Add hb_ot_layout_collect_features to harfbuzz-sections.txt.
Add the fuzzer test case for feature collection timeout.