Commit Graph

6242 Commits

Author SHA1 Message Date
Behdad Esfahbod
19e0091299 Minor 2018-08-06 04:54:31 -07:00
Behdad Esfahbod
37be774af9 Minor 2018-08-06 04:52:12 -07:00
Behdad Esfahbod
e1acff806b Move hb_vector_t to hb-vector-private.hh 2018-08-06 04:42:46 -07:00
Behdad Esfahbod
be336dadc0 Move some more code around 2018-08-06 04:32:51 -07:00
Behdad Esfahbod
92806ee055 Move null data definitions to hb-static.cc
Also remove "    " null data for Tag.  Just use zeroes.
2018-08-05 21:41:52 -07:00
Behdad Esfahbod
1b4d5a2402 Minor 2018-08-03 19:55:09 -07:00
Behdad Esfahbod
7df7963b46 Make lazy loader deal with OOM 2018-08-03 19:54:33 -07:00
Behdad Esfahbod
30ff8ac865 Rename 2018-08-03 17:33:13 -07:00
Behdad Esfahbod
85ba4a190f [ot] Comment 2018-08-03 17:06:42 -07:00
Behdad Esfahbod
07afc1a213 [ot] Add misc tables to tables_t
Most unused.
2018-08-03 17:03:32 -07:00
Behdad Esfahbod
74b4df2cde [ot] Move GDEF into tables_t 2018-08-03 16:58:05 -07:00
Behdad Esfahbod
0271c7ab3b [ot] Move GSUB/GPOS into tables_t 2018-08-03 16:45:57 -07:00
Behdad Esfahbod
f73d2775cf [ot] More shuffling
Misc. table loading now properly automated.
2018-08-03 16:34:25 -07:00
Behdad Esfahbod
52fbd23d86 [ot] Minor 2018-08-03 16:22:16 -07:00
Behdad Esfahbod
6a0a298aab [ot] Move code around 2018-08-02 23:13:19 -07:00
Behdad Esfahbod
5e718a751e [ot] Use switch for checking for blacklisted GDEF tables
Faster / more compact code.
2018-08-02 23:04:42 -07:00
Behdad Esfahbod
b5cdf5280d [ot] In GDEF blacklisting logic, remove the glyph index check for Times
Just blacklist based on table sizes like we do for other fonts.
2018-08-02 22:56:42 -07:00
Behdad Esfahbod
c988b11999 Move code around 2018-08-02 22:55:52 -07:00
Behdad Esfahbod
574b37e933 Minor 2018-08-02 02:22:38 -07:00
Behdad Esfahbod
d4d1bf8177 Fix for recent rename 2018-08-02 02:04:02 -07:00
Behdad Esfahbod
91126aa11a [uniscribe] Update for recent changes 2018-08-02 02:03:13 -07:00
Behdad Esfahbod
66952ec47b Remove unused table reference 2018-08-02 01:45:12 -07:00
Behdad Esfahbod
443de26fa5 Minor 2018-08-02 01:43:02 -07:00
Behdad Esfahbod
ee35af738b Make lazy-loader safe for nil objectification 2018-08-02 01:37:57 -07:00
Behdad Esfahbod
6404c49d07 Minor 2018-08-02 01:36:08 -07:00
Behdad Esfahbod
ff7826e90b Reduce storage by sharing face amongst lazy_loaders 2018-08-02 01:29:05 -07:00
Behdad Esfahbod
bdd3c11a19 Internal templatization of lazy-loaders 2018-08-02 01:09:14 -07:00
Behdad Esfahbod
ed7b2e58fc Remove OT namespace from hb-machinery-private.hh 2018-08-02 00:08:08 -07:00
Behdad Esfahbod
cb1491f92e Minor 2018-08-01 22:50:45 -07:00
Behdad Esfahbod
16ccfafbbd [face] Sprinkle const in the API 2018-08-01 22:50:06 -07:00
Behdad Esfahbod
3d22aefede Rename 2018-08-01 18:03:32 -07:00
Behdad Esfahbod
1a624c6e06 Add comment re (our only) race condition 2018-08-01 17:53:30 -07:00
Behdad Esfahbod
44d1fb37ef 1.8.5 2018-08-01 14:51:51 -07:00
Behdad Esfahbod
13f4c137c6 [atomic] Fix Solaris ones to add proper barriers 2018-08-01 14:15:00 -07:00
Behdad Esfahbod
19dfaa3515 [atomic] Remove volatile from IBM impl signature 2018-08-01 14:15:00 -07:00
Behdad Esfahbod
2093a3e0cb [atomic] Oops 2018-08-01 14:15:00 -07:00
Behdad Esfahbod
19b98348ff [atomic] Use read-barrier for get() 2018-08-01 14:15:00 -07:00
Behdad Esfahbod
006d4f031a [atomic] Some more minor tweaks 2018-08-01 14:15:00 -07:00
Ebrahim Byagowi
28d03a8afc
[ci] Fix Appveyor bot (#1123) 2018-08-02 00:11:43 +04:30
Ebrahim Byagowi
1a7fed6318
Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" (#1121)
This reverts commit 0c1b287b72.
2018-08-01 12:15:44 +04:30
Behdad Esfahbod
dfc86e4b35 [atomic] Fix cast to fallback ptr_get() 2018-08-01 00:22:18 -07:00
Behdad Esfahbod
7a4d576e81 [gobject] Fix copy/paste error 2018-08-01 00:19:25 -07:00
Behdad Esfahbod
ad27562742 [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.
2018-07-31 23:01:05 -07:00
Behdad Esfahbod
fd638d215f [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.
2018-07-31 23:00:15 -07:00
Behdad Esfahbod
896ff15ae6 [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.
2018-07-31 22:51:38 -07:00
Behdad Esfahbod
d7a15799d4 [gobject] Hook up hb_map_t 2018-07-31 22:28:28 -07:00
Behdad Esfahbod
63c74e8d1d [atomic] Fix fallback impl 2018-07-31 22:21:21 -07:00
Behdad Esfahbod
4bc16aca47 [atomic] Add get_relaxed / set_relaxed
To help TSan and be more "correct".
2018-07-31 21:29:18 -07:00
Behdad Esfahbod
3dd1b88765 [atomic] Use CONSUME, not ACQUIRE, memory-order for get()
Although, all implementations just elevate that to ACQUIRE.
But requirement for us is just CONSUME.
2018-07-31 20:28:36 -07:00
Behdad Esfahbod
06b91d935d Revert "[atomic] Make pointer get op relaxed instead of acquire"
This reverts commit b1e5650c67.

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.
2018-07-31 20:28:36 -07:00