Behdad Esfahbod [Mon, 13 Aug 2018 00:19:55 +0000 (17:19 -0700)]
[lazy] Rename free()
Behdad Esfahbod [Mon, 13 Aug 2018 00:14:32 +0000 (17:14 -0700)]
[lazy] Port more to it
Behdad Esfahbod [Sun, 12 Aug 2018 23:57:06 +0000 (16:57 -0700)]
[lazy] Make hb_lazy_loader_t<> more usable
Behdad Esfahbod [Sun, 12 Aug 2018 23:40:08 +0000 (16:40 -0700)]
[lazy] Minor
Behdad Esfahbod [Sun, 12 Aug 2018 23:33:48 +0000 (16:33 -0700)]
Minor
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.
Behdad Esfahbod [Sun, 12 Aug 2018 23:29:41 +0000 (16:29 -0700)]
[icu] Fix for breakage after recent change
Behdad Esfahbod [Sun, 12 Aug 2018 23:20:11 +0000 (16:20 -0700)]
[lazy] Use for ft_library
Behdad Esfahbod [Sun, 12 Aug 2018 23:00:13 +0000 (16:00 -0700)]
[lazy] Add .free()
Behdad Esfahbod [Sun, 12 Aug 2018 20:46:53 +0000 (13:46 -0700)]
[ot/ft] Port font_funcs statis 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
Behdad Esfahbod [Sun, 12 Aug 2018 20:16:40 +0000 (13:16 -0700)]
[lazy] Allow calling fini() multiple times
Behdad Esfahbod [Sun, 12 Aug 2018 20:12:29 +0000 (13:12 -0700)]
[lazy] More
Behdad Esfahbod [Sun, 12 Aug 2018 19:40:24 +0000 (12:40 -0700)]
[lazy] More shuffle
Behdad Esfahbod [Sun, 12 Aug 2018 19:27:47 +0000 (12:27 -0700)]
Minor
Behdad Esfahbod [Sun, 12 Aug 2018 19:21:56 +0000 (12:21 -0700)]
Add explicit_operator
Fixes https://github.com/harfbuzz/harfbuzz/issues/1127
Behdad Esfahbod [Sun, 12 Aug 2018 19:09:20 +0000 (12:09 -0700)]
Rename
Martin Hosken [Thu, 9 Aug 2018 08:16:32 +0000 (15:16 +0700)]
Support _ in feature ids
Behdad Esfahbod [Thu, 9 Aug 2018 08:02:02 +0000 (01:02 -0700)]
[coretext] Another try
Behdad Esfahbod [Thu, 9 Aug 2018 07:58:17 +0000 (00:58 -0700)]
Fix coretext build (hopefully)
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
Behdad Esfahbod [Thu, 9 Aug 2018 07:53:25 +0000 (00:53 -0700)]
[atomic] More
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.
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".
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
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.
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...
Behdad Esfahbod [Thu, 9 Aug 2018 05:42:33 +0000 (22:42 -0700)]
[atomic] Change Windows atomic int type to int
Behdad Esfahbod [Thu, 9 Aug 2018 05:40:10 +0000 (22:40 -0700)]
[atomic] Change Solaris atomic int to signed
Behdad Esfahbod [Thu, 9 Aug 2018 04:54:08 +0000 (21:54 -0700)]
1.8.7
Behdad Esfahbod [Thu, 9 Aug 2018 05:01:04 +0000 (22:01 -0700)]
Fix previous commit to use atomic operations
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
Behdad Esfahbod [Tue, 7 Aug 2018 16:55:42 +0000 (09:55 -0700)]
1.8.6
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
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
Behdad Esfahbod [Tue, 7 Aug 2018 16:44:01 +0000 (09:44 -0700)]
Minor
Behdad Esfahbod [Tue, 7 Aug 2018 16:37:52 +0000 (09:37 -0700)]
Remove get_advances_nil and alias it to get_advances_default
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
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
Koji Ishii [Wed, 1 Aug 2018 04:01:08 +0000 (13:01 +0900)]
batchwidth
Behdad Esfahbod [Mon, 6 Aug 2018 13:30:12 +0000 (06:30 -0700)]
Remove most uses of direct comparison to Null objects
Behdad Esfahbod [Mon, 6 Aug 2018 13:17:48 +0000 (06:17 -0700)]
Port _nil objects to Null() machinery
Finally, unified!
Behdad Esfahbod [Mon, 6 Aug 2018 12:53:35 +0000 (05:53 -0700)]
[BASE] Rename horzi/vert to h/v
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.
Behdad Esfahbod [Mon, 6 Aug 2018 12:29:15 +0000 (05:29 -0700)]
Change null-pool specialization to min_size again
Behdad Esfahbod [Mon, 6 Aug 2018 12:01:52 +0000 (05:01 -0700)]
Move Null system to hb-null.hh
Behdad Esfahbod [Mon, 6 Aug 2018 11:58:34 +0000 (04:58 -0700)]
Remove unused macros
Behdad Esfahbod [Mon, 6 Aug 2018 11:54:31 +0000 (04:54 -0700)]
Minor
Behdad Esfahbod [Mon, 6 Aug 2018 11:51:38 +0000 (04:51 -0700)]
Minor
Behdad Esfahbod [Mon, 6 Aug 2018 11:42:46 +0000 (04:42 -0700)]
Move hb_vector_t to hb-vector-private.hh
Behdad Esfahbod [Mon, 6 Aug 2018 11:32:51 +0000 (04:32 -0700)]
Move some more code around
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.
Behdad Esfahbod [Sat, 4 Aug 2018 02:55:09 +0000 (19:55 -0700)]
Minor
Behdad Esfahbod [Sat, 4 Aug 2018 02:54:33 +0000 (19:54 -0700)]
Make lazy loader deal with OOM
Behdad Esfahbod [Sat, 4 Aug 2018 00:32:00 +0000 (17:32 -0700)]
Rename
Behdad Esfahbod [Sat, 4 Aug 2018 00:06:42 +0000 (17:06 -0700)]
[ot] Comment
Behdad Esfahbod [Sat, 4 Aug 2018 00:03:32 +0000 (17:03 -0700)]
[ot] Add misc tables to tables_t
Most unused.
Behdad Esfahbod [Fri, 3 Aug 2018 23:57:40 +0000 (16:57 -0700)]
[ot] Move GDEF into tables_t
Behdad Esfahbod [Fri, 3 Aug 2018 23:45:57 +0000 (16:45 -0700)]
[ot] Move GSUB/GPOS into tables_t
Behdad Esfahbod [Fri, 3 Aug 2018 23:34:25 +0000 (16:34 -0700)]
[ot] More shuffling
Misc. table loading now properly automated.
Behdad Esfahbod [Fri, 3 Aug 2018 23:22:16 +0000 (16:22 -0700)]
[ot] Minor
Behdad Esfahbod [Fri, 3 Aug 2018 06:13:19 +0000 (23:13 -0700)]
[ot] Move code around
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.
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.
Behdad Esfahbod [Fri, 3 Aug 2018 03:04:37 +0000 (20:04 -0700)]
Move code around
Behdad Esfahbod [Thu, 2 Aug 2018 09:22:38 +0000 (02:22 -0700)]
Minor
Behdad Esfahbod [Thu, 2 Aug 2018 09:04:02 +0000 (02:04 -0700)]
Fix for recent rename
Behdad Esfahbod [Thu, 2 Aug 2018 09:03:13 +0000 (02:03 -0700)]
[uniscribe] Update for recent changes
Behdad Esfahbod [Thu, 2 Aug 2018 08:44:20 +0000 (01:44 -0700)]
Remove unused table reference
Behdad Esfahbod [Thu, 2 Aug 2018 08:41:19 +0000 (01:41 -0700)]
Minor
Behdad Esfahbod [Thu, 2 Aug 2018 08:37:57 +0000 (01:37 -0700)]
Make lazy-loader safe for nil objectification
Behdad Esfahbod [Thu, 2 Aug 2018 08:36:08 +0000 (01:36 -0700)]
Minor
Behdad Esfahbod [Thu, 2 Aug 2018 08:27:40 +0000 (01:27 -0700)]
Reduce storage by sharing face amongst lazy_loaders
Behdad Esfahbod [Thu, 2 Aug 2018 07:38:46 +0000 (00:38 -0700)]
Internal templatization of lazy-loaders
Behdad Esfahbod [Thu, 2 Aug 2018 06:59:09 +0000 (23:59 -0700)]
Remove OT namespace from hb-machinery-private.hh
Behdad Esfahbod [Thu, 2 Aug 2018 05:50:45 +0000 (22:50 -0700)]
Minor
Behdad Esfahbod [Thu, 2 Aug 2018 05:50:06 +0000 (22:50 -0700)]
[face] Sprinkle const in the API
Behdad Esfahbod [Thu, 2 Aug 2018 01:03:32 +0000 (18:03 -0700)]
Rename
Behdad Esfahbod [Thu, 2 Aug 2018 00:53:30 +0000 (17:53 -0700)]
Add comment re (our only) race condition
Behdad Esfahbod [Wed, 1 Aug 2018 21:51:51 +0000 (14:51 -0700)]
1.8.5
Behdad Esfahbod [Wed, 1 Aug 2018 21:13:59 +0000 (14:13 -0700)]
[atomic] Fix Solaris ones to add proper barriers
Behdad Esfahbod [Wed, 1 Aug 2018 21:02:39 +0000 (14:02 -0700)]
[atomic] Remove volatile from IBM impl signature
Behdad Esfahbod [Wed, 1 Aug 2018 21:00:46 +0000 (14:00 -0700)]
[atomic] Oops
Behdad Esfahbod [Wed, 1 Aug 2018 20:59:59 +0000 (13:59 -0700)]
[atomic] Use read-barrier for get()
Behdad Esfahbod [Wed, 1 Aug 2018 20:59:31 +0000 (13:59 -0700)]
[atomic] Some more minor tweaks
Ebrahim Byagowi [Wed, 1 Aug 2018 19:41:43 +0000 (00:11 +0430)]
[ci] Fix Appveyor bot (#1123)
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.
Behdad Esfahbod [Wed, 1 Aug 2018 07:22:18 +0000 (00:22 -0700)]
[atomic] Fix cast to fallback ptr_get()
Behdad Esfahbod [Wed, 1 Aug 2018 07:19:25 +0000 (00:19 -0700)]
[gobject] Fix copy/paste error
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.
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.
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.
Behdad Esfahbod [Wed, 1 Aug 2018 05:28:28 +0000 (22:28 -0700)]
[gobject] Hook up hb_map_t
Behdad Esfahbod [Wed, 1 Aug 2018 05:21:21 +0000 (22:21 -0700)]
[atomic] Fix fallback impl
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".
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.
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.
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.
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.
Garret Rieger [Tue, 31 Jul 2018 01:10:43 +0000 (18:10 -0700)]
[subset] use add_array to populate feature_indexes.
This is much faster then calling a bunch of individual add()'s.