/work/workdir/UnpackedTarball/harfbuzz/src/hb-atomic.hh
Line | Count | Source |
1 | | /* |
2 | | * Copyright © 2007 Chris Wilson |
3 | | * Copyright © 2009,2010 Red Hat, Inc. |
4 | | * Copyright © 2011,2012 Google, Inc. |
5 | | * |
6 | | * This is part of HarfBuzz, a text shaping library. |
7 | | * |
8 | | * Permission is hereby granted, without written agreement and without |
9 | | * license or royalty fees, to use, copy, modify, and distribute this |
10 | | * software and its documentation for any purpose, provided that the |
11 | | * above copyright notice and the following two paragraphs appear in |
12 | | * all copies of this software. |
13 | | * |
14 | | * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR |
15 | | * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES |
16 | | * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN |
17 | | * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
18 | | * DAMAGE. |
19 | | * |
20 | | * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
21 | | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
22 | | * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS |
23 | | * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO |
24 | | * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
25 | | * |
26 | | * Contributor(s): |
27 | | * Chris Wilson <chris@chris-wilson.co.uk> |
28 | | * Red Hat Author(s): Behdad Esfahbod |
29 | | * Google Author(s): Behdad Esfahbod |
30 | | */ |
31 | | |
32 | | #ifndef HB_ATOMIC_HH |
33 | | #define HB_ATOMIC_HH |
34 | | |
35 | | #include "hb.hh" |
36 | | #include "hb-meta.hh" |
37 | | |
38 | | |
39 | | #ifndef HB_NO_MT |
40 | | #include <atomic> |
41 | | #endif |
42 | | |
43 | | |
44 | | /* This should never be disabled, even under HB_NO_MT. |
45 | | * except that MSVC gives me an internal compiler error, so disabled there. |
46 | | * |
47 | | * https://github.com/harfbuzz/harfbuzz/pull/4119 |
48 | | */ |
49 | | #ifndef _hb_compiler_memory_r_barrier |
50 | | #if defined(__ATOMIC_ACQUIRE) // gcc-like |
51 | 85.2M | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); }hb-aat-layout.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 19.7M | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-aat-map.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-blob.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-buffer.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-common.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-draw.cc:_hb_compiler_memory_r_barrier() hb-face.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 27.9M | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-face-builder.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-fallback-shape.cc:_hb_compiler_memory_r_barrier() hb-font.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 12 | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-map.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-number.cc:_hb_compiler_memory_r_barrier() hb-ot-color.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 3.32k | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-ot-face.cc:_hb_compiler_memory_r_barrier() hb-ot-fetch.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 68.5k | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
hb-ot-font.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 97.5k | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-outline.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: VARC.cc:_hb_compiler_memory_r_barrier() hb-ot-layout.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 36.1M | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-ot-math.cc:_hb_compiler_memory_r_barrier() hb-ot-metrics.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 294 | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
hb-ot-name.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 1.11M | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-ot-shape.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-tag.cc:_hb_compiler_memory_r_barrier() hb-ot-var.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 587 | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-set.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-shape-plan.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-shape.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-shaper.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-static.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-style.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-unicode.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-graphite2.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-icu.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-buffer-verify.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-paint.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-paint-bounded.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-paint-extents.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-cff1-table.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-cff2-table.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-map.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-arabic.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-default.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-hangul.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-hebrew.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-indic.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-khmer.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-myanmar.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-syllabic.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-thai.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-use.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shape-fallback.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shape-normalize.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ucd.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-buffer-serialize.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-ot-shaper-indic-table.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-input.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset.cc:_hb_compiler_memory_r_barrier() hb-subset-plan.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 37 | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: hb-subset-plan-layout.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-plan-var.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-table-layout.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-table-var.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-table-cff.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-table-color.cc:_hb_compiler_memory_r_barrier() hb-subset-table-other.cc:_hb_compiler_memory_r_barrier() Line | Count | Source | 51 | 14.6k | static inline void _hb_compiler_memory_r_barrier () { asm volatile("": : :"memory"); } |
Unexecuted instantiation: gsubgpos-context.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-cff1.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-cff2.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-instancer-iup.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-instancer-solver.cc:_hb_compiler_memory_r_barrier() Unexecuted instantiation: hb-subset-cff-common.cc:_hb_compiler_memory_r_barrier() |
52 | | #elif !defined(_MSC_VER) |
53 | | #include <atomic> |
54 | | #define _hb_compiler_memory_r_barrier() std::atomic_signal_fence (std::memory_order_acquire) |
55 | | #else |
56 | | static inline void _hb_compiler_memory_r_barrier () {} |
57 | | #endif |
58 | | #endif |
59 | | |
60 | | |
61 | | #ifndef HB_NO_MT |
62 | | |
63 | | template <typename T> |
64 | | struct hb_atomic_t |
65 | | { |
66 | 122M | hb_atomic_t () = default; hb_atomic_t<unsigned short>::hb_atomic_t() Line | Count | Source | 66 | 2.42M | hb_atomic_t () = default; |
hb_atomic_t<int>::hb_atomic_t() Line | Count | Source | 66 | 111M | hb_atomic_t () = default; |
hb_atomic_t<unsigned int>::hb_atomic_t() Line | Count | Source | 66 | 8.28M | hb_atomic_t () = default; |
Unexecuted instantiation: hb_atomic_t<float>::hb_atomic_t() |
67 | 214M | constexpr hb_atomic_t (T v) : v (v) {}hb_atomic_t<bool>::hb_atomic_t(bool) Line | Count | Source | 67 | 111M | constexpr hb_atomic_t (T v) : v (v) {} |
hb_atomic_t<unsigned int>::hb_atomic_t(unsigned int) Line | Count | Source | 67 | 102M | constexpr hb_atomic_t (T v) : v (v) {} |
|
68 | | constexpr hb_atomic_t (const hb_atomic_t& o) : v (o.get_relaxed ()) {} |
69 | | hb_atomic_t (hb_atomic_t&& o) : v (o.get_relaxed ()) { o.set_relaxed ({}); } |
70 | | |
71 | 368k | hb_atomic_t &operator= (const hb_atomic_t& o) { set_relaxed (o.get_relaxed ()); return *this; } |
72 | 0 | hb_atomic_t &operator= (hb_atomic_t&& o){ set_relaxed (o.get_relaxed ()); o.set_relaxed ({}); return *this; } |
73 | | hb_atomic_t &operator= (T v_) |
74 | 462M | { |
75 | 462M | set_relaxed (v_); |
76 | 462M | return *this; |
77 | 462M | } hb_atomic_t<unsigned int>::operator=(unsigned int) Line | Count | Source | 74 | 122M | { | 75 | 122M | set_relaxed (v_); | 76 | 122M | return *this; | 77 | 122M | } |
hb_atomic_t<unsigned short>::operator=(unsigned short) Line | Count | Source | 74 | 3.84M | { | 75 | 3.84M | set_relaxed (v_); | 76 | 3.84M | return *this; | 77 | 3.84M | } |
hb_atomic_t<int>::operator=(int) Line | Count | Source | 74 | 224M | { | 75 | 224M | set_relaxed (v_); | 76 | 224M | return *this; | 77 | 224M | } |
hb_atomic_t<bool>::operator=(bool) Line | Count | Source | 74 | 112M | { | 75 | 112M | set_relaxed (v_); | 76 | 112M | return *this; | 77 | 112M | } |
hb_atomic_t<unsigned char>::operator=(unsigned char) Line | Count | Source | 74 | 36.3k | { | 75 | 36.3k | set_relaxed (v_); | 76 | 36.3k | return *this; | 77 | 36.3k | } |
Unexecuted instantiation: hb_atomic_t<float>::operator=(float) |
78 | 2.16G | operator T () const { return get_relaxed (); }hb_atomic_t<unsigned int>::operator unsigned int() const Line | Count | Source | 78 | 1.00G | operator T () const { return get_relaxed (); } |
hb_atomic_t<unsigned short>::operator unsigned short() const Line | Count | Source | 78 | 456M | operator T () const { return get_relaxed (); } |
hb_atomic_t<int>::operator int() const Line | Count | Source | 78 | 550M | operator T () const { return get_relaxed (); } |
hb_atomic_t<unsigned char>::operator unsigned char() const Line | Count | Source | 78 | 147k | operator T () const { return get_relaxed (); } |
Unexecuted instantiation: hb_atomic_t<float>::operator float() const hb_atomic_t<bool>::operator bool() const Line | Count | Source | 78 | 155M | operator T () const { return get_relaxed (); } |
|
79 | | |
80 | 463M | void set_relaxed (T v_) { v.store (v_, std::memory_order_relaxed); }hb_atomic_t<unsigned int>::set_relaxed(unsigned int) Line | Count | Source | 80 | 122M | void set_relaxed (T v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<unsigned short>::set_relaxed(unsigned short) Line | Count | Source | 80 | 3.84M | void set_relaxed (T v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<int>::set_relaxed(int) Line | Count | Source | 80 | 224M | void set_relaxed (T v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<bool>::set_relaxed(bool) Line | Count | Source | 80 | 112M | void set_relaxed (T v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<unsigned char>::set_relaxed(unsigned char) Line | Count | Source | 80 | 36.3k | void set_relaxed (T v_) { v.store (v_, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<float>::set_relaxed(float) |
81 | 810 | void set_release (T v_) { v.store (v_, std::memory_order_release); } |
82 | 2.16G | T get_relaxed () const { return v.load (std::memory_order_relaxed); }hb_atomic_t<unsigned int>::get_relaxed() const Line | Count | Source | 82 | 1.00G | T get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<unsigned short>::get_relaxed() const Line | Count | Source | 82 | 456M | T get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<int>::get_relaxed() const Line | Count | Source | 82 | 550M | T get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<unsigned char>::get_relaxed() const Line | Count | Source | 82 | 147k | T get_relaxed () const { return v.load (std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<float>::get_relaxed() const hb_atomic_t<bool>::get_relaxed() const Line | Count | Source | 82 | 155M | T get_relaxed () const { return v.load (std::memory_order_relaxed); } |
|
83 | 667k | T get_acquire () const { return v.load (std::memory_order_acquire); }hb_atomic_t<unsigned int>::get_acquire() const Line | Count | Source | 83 | 333k | T get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<int>::get_acquire() const Line | Count | Source | 83 | 333k | T get_acquire () const { return v.load (std::memory_order_acquire); } |
|
84 | 104M | T inc () { return v.fetch_add (1, std::memory_order_acq_rel); }Line | Count | Source | 84 | 103M | T inc () { return v.fetch_add (1, std::memory_order_acq_rel); } |
hb_atomic_t<unsigned int>::inc() Line | Count | Source | 84 | 871k | T inc () { return v.fetch_add (1, std::memory_order_acq_rel); } |
|
85 | 112M | T dec () { return v.fetch_add (-1, std::memory_order_acq_rel); } |
86 | | |
87 | 871k | int operator++ (int) { return inc (); } |
88 | | int operator-- (int) { return dec (); } |
89 | | |
90 | | friend void swap (hb_atomic_t &a, hb_atomic_t &b) noexcept |
91 | 0 | { |
92 | 0 | T v = a.get_acquire (); |
93 | 0 | a.set_relaxed (b.get_acquire ()); |
94 | 0 | b.set_relaxed (v); |
95 | 0 | } |
96 | | |
97 | | std::atomic<T> v {0}; |
98 | | }; |
99 | | |
100 | | template <typename T> |
101 | | struct hb_atomic_t<T *> |
102 | | { |
103 | 114M | hb_atomic_t () = default; hb_atomic_t<hb_user_data_array_t*>::hb_atomic_t() Line | Count | Source | 103 | 111M | hb_atomic_t () = default; |
hb_atomic_t<hb_bit_set_t*>::hb_atomic_t() Line | Count | Source | 103 | 72.2k | hb_atomic_t () = default; |
hb_atomic_t<hb_graphite2_face_data_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<hb_ot_face_data_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<hb_fallback_face_data_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<hb_blob_t*>::hb_atomic_t() Line | Count | Source | 103 | 529k | hb_atomic_t () = default; |
hb_atomic_t<OT::maxp_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::cmap_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::hhea_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::hmtx_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::post_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::name_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::meta_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::vhea_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::vmtx_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::glyf_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::cff1_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::cff2_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::gvar_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::VARC_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::kern_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::GDEF_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::GSUB_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::GPOS_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<AAT::morx_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<AAT::mort_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<AAT::kerx_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::COLR_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::CBDT_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::sbix_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<OT::SVG_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<hb_face_t::plan_node_t*>::hb_atomic_t() Line | Count | Source | 103 | 33.0k | hb_atomic_t () = default; |
hb_atomic_t<hb_graphite2_font_data_t*>::hb_atomic_t() Line | Count | Source | 103 | 340k | hb_atomic_t () = default; |
hb_atomic_t<hb_ot_font_data_t*>::hb_atomic_t() Line | Count | Source | 103 | 340k | hb_atomic_t () = default; |
hb_atomic_t<hb_fallback_font_data_t*>::hb_atomic_t() Line | Count | Source | 103 | 340k | hb_atomic_t () = default; |
hb_atomic_t<hb_colr_scratch_t*>::hb_atomic_t() Line | Count | Source | 103 | 2.64k | hb_atomic_t () = default; |
Unexecuted instantiation: hb_atomic_t<OT::SVG::svg_doc_cache_t*>::hb_atomic_t() hb_atomic_t<unsigned short*>::hb_atomic_t() Line | Count | Source | 103 | 12.4k | hb_atomic_t () = default; |
hb_atomic_t<hb_glyf_scratch_t*>::hb_atomic_t() Line | Count | Source | 103 | 36.8k | hb_atomic_t () = default; |
hb_atomic_t<OT::hb_varc_scratch_t*>::hb_atomic_t() Line | Count | Source | 103 | 24 | hb_atomic_t () = default; |
hb_atomic_t<hb_vector_t<float, false>*>::hb_atomic_t() Line | Count | Source | 103 | 4 | hb_atomic_t () = default; |
hb_atomic_t<hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*>::hb_atomic_t() Line | Count | Source | 103 | 16 | hb_atomic_t () = default; |
hb_atomic_t<OT::cff1_subset_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 20.3k | hb_atomic_t () = default; |
hb_atomic_t<OT::cff2_subset_accelerator_t*>::hb_atomic_t() Line | Count | Source | 103 | 20.3k | hb_atomic_t () = default; |
Unexecuted instantiation: hb_atomic_t<hb_vector_t<CFF::code_pair_t, false>*>::hb_atomic_t() |
104 | | constexpr hb_atomic_t (T *v) : v (v) {} |
105 | | hb_atomic_t (const hb_atomic_t &other) = delete; |
106 | | |
107 | 112M | void init (T *v_ = nullptr) { set_relaxed (v_); } |
108 | 117M | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); }hb_atomic_t<hb_user_data_array_t*>::set_relaxed(hb_user_data_array_t*) Line | Count | Source | 108 | 112M | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_bit_set_t*>::set_relaxed(hb_bit_set_t*) Line | Count | Source | 108 | 36.1k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_graphite2_font_data_t*>::set_relaxed(hb_graphite2_font_data_t*) Line | Count | Source | 108 | 1.21M | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_ot_font_data_t*>::set_relaxed(hb_ot_font_data_t*) Line | Count | Source | 108 | 1.21M | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_fallback_font_data_t*>::set_relaxed(hb_fallback_font_data_t*) Line | Count | Source | 108 | 1.21M | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_graphite2_face_data_t*>::set_relaxed(hb_graphite2_face_data_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_ot_face_data_t*>::set_relaxed(hb_ot_face_data_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_fallback_face_data_t*>::set_relaxed(hb_fallback_face_data_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<OT::SVG::svg_doc_cache_t*>::set_relaxed(OT::SVG::svg_doc_cache_t*) hb_atomic_t<hb_blob_t*>::set_relaxed(hb_blob_t*) Line | Count | Source | 108 | 527k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::maxp_accelerator_t*>::set_relaxed(OT::maxp_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::cmap_accelerator_t*>::set_relaxed(OT::cmap_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::hhea_accelerator_t*>::set_relaxed(OT::hhea_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::hmtx_accelerator_t*>::set_relaxed(OT::hmtx_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::post_accelerator_t*>::set_relaxed(OT::post_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::name_accelerator_t*>::set_relaxed(OT::name_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::meta_accelerator_t*>::set_relaxed(OT::meta_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::vhea_accelerator_t*>::set_relaxed(OT::vhea_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::vmtx_accelerator_t*>::set_relaxed(OT::vmtx_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::glyf_accelerator_t*>::set_relaxed(OT::glyf_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::cff1_accelerator_t*>::set_relaxed(OT::cff1_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::cff2_accelerator_t*>::set_relaxed(OT::cff2_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::gvar_accelerator_t*>::set_relaxed(OT::gvar_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::VARC_accelerator_t*>::set_relaxed(OT::VARC_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::kern_accelerator_t*>::set_relaxed(OT::kern_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::GDEF_accelerator_t*>::set_relaxed(OT::GDEF_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::GSUB_accelerator_t*>::set_relaxed(OT::GSUB_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::GPOS_accelerator_t*>::set_relaxed(OT::GPOS_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<AAT::morx_accelerator_t*>::set_relaxed(AAT::morx_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<AAT::mort_accelerator_t*>::set_relaxed(AAT::mort_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<AAT::kerx_accelerator_t*>::set_relaxed(AAT::kerx_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::COLR_accelerator_t*>::set_relaxed(OT::COLR_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::CBDT_accelerator_t*>::set_relaxed(OT::CBDT_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::sbix_accelerator_t*>::set_relaxed(OT::sbix_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::SVG_accelerator_t*>::set_relaxed(OT::SVG_accelerator_t*) Line | Count | Source | 108 | 32.9k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*>::set_relaxed(hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*) Line | Count | Source | 108 | 16 | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::cff1_subset_accelerator_t*>::set_relaxed(OT::cff1_subset_accelerator_t*) Line | Count | Source | 108 | 20.3k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
hb_atomic_t<OT::cff2_subset_accelerator_t*>::set_relaxed(OT::cff2_subset_accelerator_t*) Line | Count | Source | 108 | 20.3k | void set_relaxed (T *v_) { v.store (v_, std::memory_order_relaxed); } |
|
109 | 286k | T *get_relaxed () const { return v.load (std::memory_order_relaxed); }hb_atomic_t<OT::hb_ot_layout_lookup_accelerator_t*>::get_relaxed() const Line | Count | Source | 109 | 7.44k | T *get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<hb_bit_set_t*>::get_relaxed() const Line | Count | Source | 109 | 89.9k | T *get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<OT::GPOS_accelerator_t*>::get_relaxed() const Line | Count | Source | 109 | 4.11k | T *get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<OT::GSUB_accelerator_t*>::get_relaxed() const Line | Count | Source | 109 | 145k | T *get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<hb_colr_scratch_t*>::get_relaxed() const Line | Count | Source | 109 | 2.62k | T *get_relaxed () const { return v.load (std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<OT::SVG::svg_doc_cache_t*>::get_relaxed() const hb_atomic_t<hb_glyf_scratch_t*>::get_relaxed() const Line | Count | Source | 109 | 36.8k | T *get_relaxed () const { return v.load (std::memory_order_relaxed); } |
hb_atomic_t<hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*>::get_relaxed() const Line | Count | Source | 109 | 12 | T *get_relaxed () const { return v.load (std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<OT::hb_varc_scratch_t*>::get_relaxed() const Unexecuted instantiation: hb_atomic_t<hb_vector_t<CFF::code_pair_t, false>*>::get_relaxed() const Unexecuted instantiation: hb_atomic_t<hb_graphite2_face_data_t*>::get_relaxed() const Unexecuted instantiation: hb_atomic_t<hb_ot_face_data_t*>::get_relaxed() const Unexecuted instantiation: hb_atomic_t<hb_fallback_face_data_t*>::get_relaxed() const Unexecuted instantiation: hb_atomic_t<hb_graphite2_font_data_t*>::get_relaxed() const Unexecuted instantiation: hb_atomic_t<hb_ot_font_data_t*>::get_relaxed() const Unexecuted instantiation: hb_atomic_t<hb_fallback_font_data_t*>::get_relaxed() const |
110 | 1.05G | T *get_acquire () const { return v.load (std::memory_order_acquire); }hb_atomic_t<hb_bit_set_t*>::get_acquire() const Line | Count | Source | 110 | 18.2M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::GDEF_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 198M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_user_data_array_t*>::get_acquire() const Line | Count | Source | 110 | 112M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::GSUB_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 51.1M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<AAT::morx_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 6.80M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<AAT::hb_aat_layout_chain_accelerator_t*>::get_acquire() const hb_atomic_t<hb_blob_t*>::get_acquire() const Line | Count | Source | 110 | 10.7M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<AAT::mort_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 6.80M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<AAT::kerx_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 50.9k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_graphite2_font_data_t*>::get_acquire() const Line | Count | Source | 110 | 1.21M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_ot_font_data_t*>::get_acquire() const Line | Count | Source | 110 | 77.5M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_fallback_font_data_t*>::get_acquire() const Line | Count | Source | 110 | 1.21M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::hb_ot_layout_lookup_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 193M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_language_item_t*>::get_acquire() const Line | Count | Source | 110 | 27.9M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<__locale_struct*>::get_acquire() const Line | Count | Source | 110 | 4 | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<hb_language_impl_t const*>::get_acquire() const Unexecuted instantiation: hb_atomic_t<hb_draw_funcs_t*>::get_acquire() const hb_atomic_t<char const*>::get_acquire() const Line | Count | Source | 110 | 176k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<char const**>::get_acquire() const hb_atomic_t<hb_face_t::plan_node_t*>::get_acquire() const Line | Count | Source | 110 | 25.4M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_graphite2_face_data_t*>::get_acquire() const Line | Count | Source | 110 | 25.6M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_ot_face_data_t*>::get_acquire() const Line | Count | Source | 110 | 25.5M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_fallback_face_data_t*>::get_acquire() const Line | Count | Source | 110 | 32.9k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::cmap_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 85.5M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::COLR_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 17.7M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::SVG_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 32.9k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::CBDT_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 17.7M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::sbix_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 17.7M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<hb_colr_scratch_t*>::get_acquire() const Unexecuted instantiation: hb_atomic_t<OT::SVG::svg_doc_cache_t*>::get_acquire() const hb_atomic_t<OT::maxp_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 95.9k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::hhea_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 6.61M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::hmtx_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 42.9M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<unsigned short*>::get_acquire() const Line | Count | Source | 110 | 12.4k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::post_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 1.42M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::name_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 3.95M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::meta_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 32.9k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::vhea_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 32.9k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::vmtx_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 400k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::glyf_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 806k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::cff1_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 132k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_vector_t<float, false>*>::get_acquire() const Line | Count | Source | 110 | 4 | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::cff2_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 132k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::gvar_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 69.0k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::VARC_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 639k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::kern_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 18.3M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::GPOS_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 51.0M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_glyf_scratch_t*>::get_acquire() const Line | Count | Source | 110 | 238k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*>::get_acquire() const Unexecuted instantiation: hb_atomic_t<OT::hb_varc_scratch_t*>::get_acquire() const hb_atomic_t<hb_font_funcs_t*>::get_acquire() const Line | Count | Source | 110 | 340k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_cache_t<20u, 20u, 8u, true>*>::get_acquire() const Line | Count | Source | 110 | 506k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::hb_scalar_cache_t*>::get_acquire() const Line | Count | Source | 110 | 1.35M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<hb_cache_t<24u, 16u, 8u, true>*>::get_acquire() const Line | Count | Source | 110 | 679k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<hb_shaper_entry_t*>::get_acquire() const Unexecuted instantiation: hb_atomic_t<hb_graphite2_tablelist_t*>::get_acquire() const hb_atomic_t<hb_unicode_funcs_t*>::get_acquire() const Line | Count | Source | 110 | 7.01M | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<hb_paint_funcs_t*>::get_acquire() const hb_atomic_t<arabic_fallback_plan_t*>::get_acquire() const Line | Count | Source | 110 | 398k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::cff1_subset_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 20.3k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
hb_atomic_t<OT::cff2_subset_accelerator_t*>::get_acquire() const Line | Count | Source | 110 | 20.3k | T *get_acquire () const { return v.load (std::memory_order_acquire); } |
Unexecuted instantiation: hb_atomic_t<hb_vector_t<CFF::code_pair_t, false>*>::get_acquire() const |
111 | 63.4M | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); }hb_atomic_t<hb_bit_set_t*>::cmpexch(hb_bit_set_t*, hb_bit_set_t*) Line | Count | Source | 111 | 36.5M | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::GDEF_accelerator_t*>::cmpexch(OT::GDEF_accelerator_t*, OT::GDEF_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::GSUB_accelerator_t*>::cmpexch(OT::GSUB_accelerator_t*, OT::GSUB_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<AAT::morx_accelerator_t*>::cmpexch(AAT::morx_accelerator_t*, AAT::morx_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<hb_blob_t*>::cmpexch(hb_blob_t*, hb_blob_t*) Line | Count | Source | 111 | 133k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<AAT::mort_accelerator_t*>::cmpexch(AAT::mort_accelerator_t*, AAT::mort_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<AAT::hb_aat_layout_chain_accelerator_t*>::cmpexch(AAT::hb_aat_layout_chain_accelerator_t*, AAT::hb_aat_layout_chain_accelerator_t*) hb_atomic_t<AAT::kerx_accelerator_t*>::cmpexch(AAT::kerx_accelerator_t*, AAT::kerx_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::hb_ot_layout_lookup_accelerator_t*>::cmpexch(OT::hb_ot_layout_lookup_accelerator_t*, OT::hb_ot_layout_lookup_accelerator_t*) Line | Count | Source | 111 | 6.12k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_user_data_array_t*>::cmpexch(hb_user_data_array_t*, hb_user_data_array_t*) hb_atomic_t<hb_language_item_t*>::cmpexch(hb_language_item_t*, hb_language_item_t*) Line | Count | Source | 111 | 230 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<__locale_struct*>::cmpexch(__locale_struct*, __locale_struct*) Line | Count | Source | 111 | 2 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_language_impl_t const*>::cmpexch(hb_language_impl_t const*, hb_language_impl_t const*) Unexecuted instantiation: hb_atomic_t<hb_draw_funcs_t*>::cmpexch(hb_draw_funcs_t*, hb_draw_funcs_t*) hb_atomic_t<char const*>::cmpexch(char const*, char const*) Line | Count | Source | 111 | 26 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<char const**>::cmpexch(char const**, char const**) hb_atomic_t<OT::cmap_accelerator_t*>::cmpexch(OT::cmap_accelerator_t*, OT::cmap_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::COLR_accelerator_t*>::cmpexch(OT::COLR_accelerator_t*, OT::COLR_accelerator_t*) Line | Count | Source | 111 | 2.64k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<OT::SVG_accelerator_t*>::cmpexch(OT::SVG_accelerator_t*, OT::SVG_accelerator_t*) hb_atomic_t<OT::CBDT_accelerator_t*>::cmpexch(OT::CBDT_accelerator_t*, OT::CBDT_accelerator_t*) Line | Count | Source | 111 | 2.64k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::sbix_accelerator_t*>::cmpexch(OT::sbix_accelerator_t*, OT::sbix_accelerator_t*) Line | Count | Source | 111 | 2.64k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_colr_scratch_t*>::cmpexch(hb_colr_scratch_t*, hb_colr_scratch_t*) Unexecuted instantiation: hb_atomic_t<OT::SVG::svg_doc_cache_t*>::cmpexch(OT::SVG::svg_doc_cache_t*, OT::SVG::svg_doc_cache_t*) Unexecuted instantiation: hb_atomic_t<hb_vector_t<float, false>*>::cmpexch(hb_vector_t<float, false>*, hb_vector_t<float, false>*) hb_atomic_t<OT::maxp_accelerator_t*>::cmpexch(OT::maxp_accelerator_t*, OT::maxp_accelerator_t*) Line | Count | Source | 111 | 25.3k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::hmtx_accelerator_t*>::cmpexch(OT::hmtx_accelerator_t*, OT::hmtx_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::vmtx_accelerator_t*>::cmpexch(OT::vmtx_accelerator_t*, OT::vmtx_accelerator_t*) Line | Count | Source | 111 | 2.46k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::gvar_accelerator_t*>::cmpexch(OT::gvar_accelerator_t*, OT::gvar_accelerator_t*) Line | Count | Source | 111 | 2.29k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<hb_glyf_scratch_t*>::cmpexch(hb_glyf_scratch_t*, hb_glyf_scratch_t*) Line | Count | Source | 111 | 477k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*>::cmpexch(hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*, hb_vector_t<OT::cff1::accelerator_t::gname_t, true>*) Unexecuted instantiation: hb_atomic_t<unsigned short*>::cmpexch(unsigned short*, unsigned short*) Unexecuted instantiation: hb_atomic_t<OT::hb_varc_scratch_t*>::cmpexch(OT::hb_varc_scratch_t*, OT::hb_varc_scratch_t*) hb_atomic_t<OT::post_accelerator_t*>::cmpexch(OT::post_accelerator_t*, OT::post_accelerator_t*) Line | Count | Source | 111 | 12.4k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<hb_cache_t<20u, 20u, 8u, true>*>::cmpexch(hb_cache_t<20u, 20u, 8u, true>*, hb_cache_t<20u, 20u, 8u, true>*) Line | Count | Source | 111 | 333k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<OT::hb_scalar_cache_t*>::cmpexch(OT::hb_scalar_cache_t*, OT::hb_scalar_cache_t*) Unexecuted instantiation: hb_atomic_t<hb_cache_t<24u, 16u, 8u, true>*>::cmpexch(hb_cache_t<24u, 16u, 8u, true>*, hb_cache_t<24u, 16u, 8u, true>*) hb_atomic_t<OT::glyf_accelerator_t*>::cmpexch(OT::glyf_accelerator_t*, OT::glyf_accelerator_t*) Line | Count | Source | 111 | 24 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::VARC_accelerator_t*>::cmpexch(OT::VARC_accelerator_t*, OT::VARC_accelerator_t*) Line | Count | Source | 111 | 24 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::cff2_accelerator_t*>::cmpexch(OT::cff2_accelerator_t*, OT::cff2_accelerator_t*) Line | Count | Source | 111 | 4 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::cff1_accelerator_t*>::cmpexch(OT::cff1_accelerator_t*, OT::cff1_accelerator_t*) Line | Count | Source | 111 | 16 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<hb_font_funcs_t*>::cmpexch(hb_font_funcs_t*, hb_font_funcs_t*) Line | Count | Source | 111 | 52 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::GPOS_accelerator_t*>::cmpexch(OT::GPOS_accelerator_t*, OT::GPOS_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::kern_accelerator_t*>::cmpexch(OT::kern_accelerator_t*, OT::kern_accelerator_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<hb_ot_font_data_t*>::cmpexch(hb_ot_font_data_t*, hb_ot_font_data_t*) Line | Count | Source | 111 | 160k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<OT::hhea_accelerator_t*>::cmpexch(OT::hhea_accelerator_t*, OT::hhea_accelerator_t*) Line | Count | Source | 111 | 21.5k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<OT::vhea_accelerator_t*>::cmpexch(OT::vhea_accelerator_t*, OT::vhea_accelerator_t*) hb_atomic_t<OT::name_accelerator_t*>::cmpexch(OT::name_accelerator_t*, OT::name_accelerator_t*) Line | Count | Source | 111 | 12.5k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_graphite2_font_data_t*>::cmpexch(hb_graphite2_font_data_t*, hb_graphite2_font_data_t*) Unexecuted instantiation: hb_atomic_t<hb_fallback_font_data_t*>::cmpexch(hb_fallback_font_data_t*, hb_fallback_font_data_t*) hb_atomic_t<hb_graphite2_face_data_t*>::cmpexch(hb_graphite2_face_data_t*, hb_graphite2_face_data_t*) Line | Count | Source | 111 | 25.6M | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
hb_atomic_t<hb_ot_face_data_t*>::cmpexch(hb_ot_face_data_t*, hb_ot_face_data_t*) Line | Count | Source | 111 | 9.02k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_fallback_face_data_t*>::cmpexch(hb_fallback_face_data_t*, hb_fallback_face_data_t*) hb_atomic_t<hb_face_t::plan_node_t*>::cmpexch(hb_face_t::plan_node_t*, hb_face_t::plan_node_t*) Line | Count | Source | 111 | 18.0k | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_shaper_entry_t*>::cmpexch(hb_shaper_entry_t*, hb_shaper_entry_t*) Unexecuted instantiation: hb_atomic_t<hb_graphite2_tablelist_t*>::cmpexch(hb_graphite2_tablelist_t*, hb_graphite2_tablelist_t*) hb_atomic_t<hb_unicode_funcs_t*>::cmpexch(hb_unicode_funcs_t*, hb_unicode_funcs_t*) Line | Count | Source | 111 | 52 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<hb_paint_funcs_t*>::cmpexch(hb_paint_funcs_t*, hb_paint_funcs_t*) hb_atomic_t<arabic_fallback_plan_t*>::cmpexch(arabic_fallback_plan_t*, arabic_fallback_plan_t*) Line | Count | Source | 111 | 153 | bool cmpexch (T *old, T *new_) { return v.compare_exchange_weak (old, new_, std::memory_order_acq_rel, std::memory_order_relaxed); } |
Unexecuted instantiation: hb_atomic_t<OT::cff1_subset_accelerator_t*>::cmpexch(OT::cff1_subset_accelerator_t*, OT::cff1_subset_accelerator_t*) Unexecuted instantiation: hb_atomic_t<OT::cff2_subset_accelerator_t*>::cmpexch(OT::cff2_subset_accelerator_t*, OT::cff2_subset_accelerator_t*) Unexecuted instantiation: hb_atomic_t<hb_vector_t<CFF::code_pair_t, false>*>::cmpexch(hb_vector_t<CFF::code_pair_t, false>*, hb_vector_t<CFF::code_pair_t, false>*) |
112 | | |
113 | | hb_atomic_t &operator= (const hb_atomic_t& o) { set_relaxed (o.get_relaxed ()); return *this; } |
114 | 0 | hb_atomic_t &operator= (hb_atomic_t&& o){ set_relaxed (o.get_relaxed ()); o.set_relaxed ({}); return *this; } |
115 | | |
116 | 0 | operator bool () const { return get_acquire () != nullptr; } |
117 | 0 | T *operator->() const { return get_acquire (); } |
118 | | template <typename C> |
119 | | operator C * () const |
120 | 53.8M | { |
121 | 53.8M | return get_acquire (); |
122 | 53.8M | } Unexecuted instantiation: hb_atomic_t<AAT::hb_aat_layout_chain_accelerator_t*>::operator void*<void>() const hb_atomic_t<hb_language_item_t*>::operator hb_language_item_t*<hb_language_item_t>() const Line | Count | Source | 120 | 27.9M | { | 121 | 27.9M | return get_acquire (); | 122 | 27.9M | } |
Unexecuted instantiation: hb_atomic_t<hb_language_impl_t const*>::operator hb_language_impl_t const*<hb_language_impl_t const>() const hb_atomic_t<hb_face_t::plan_node_t*>::operator hb_face_t::plan_node_t*<hb_face_t::plan_node_t>() const Line | Count | Source | 120 | 25.4M | { | 121 | 25.4M | return get_acquire (); | 122 | 25.4M | } |
Unexecuted instantiation: hb_atomic_t<hb_graphite2_tablelist_t*>::operator hb_graphite2_tablelist_t*<hb_graphite2_tablelist_t>() const hb_atomic_t<arabic_fallback_plan_t*>::operator arabic_fallback_plan_t*<arabic_fallback_plan_t>() const Line | Count | Source | 120 | 398k | { | 121 | 398k | return get_acquire (); | 122 | 398k | } |
|
123 | | |
124 | | friend void swap (hb_atomic_t &a, hb_atomic_t &b) noexcept |
125 | | { |
126 | | T *p = a.get_acquire (); |
127 | | a.set_relaxed (b.get_acquire ()); |
128 | | b.set_relaxed (p); |
129 | | } |
130 | | |
131 | | std::atomic<T *> v {nullptr}; |
132 | | }; |
133 | | |
134 | | #else /* defined(HB_NO_MT) */ |
135 | | |
136 | | template <typename T> |
137 | | struct hb_atomic_t |
138 | | { |
139 | | hb_atomic_t () = default; |
140 | | constexpr hb_atomic_t (T v) : v (v) {} |
141 | | |
142 | | hb_atomic_t& operator = (T v_) { set_relaxed (v_); return *this; } |
143 | | operator T () const { return get_relaxed (); } |
144 | | |
145 | | void set_relaxed (T v_) { v = v_; } |
146 | | void set_release (T v_) { v = v_; } |
147 | | T get_relaxed () const { return v; } |
148 | | T get_acquire () const { return v; } |
149 | | T inc () { return v++; } |
150 | | T dec () { return v--; } |
151 | | |
152 | | int operator ++ (int) { return inc (); } |
153 | | int operator -- (int) { return dec (); } |
154 | | |
155 | | T v = 0; |
156 | | }; |
157 | | |
158 | | template <typename T> |
159 | | struct hb_atomic_t<T*> |
160 | | { |
161 | | hb_atomic_t () = default; |
162 | | constexpr hb_atomic_t (T* v) : v (v) {} |
163 | | hb_atomic_t (const hb_atomic_t &other) = delete; |
164 | | |
165 | | void init (T* v_ = nullptr) { set_relaxed (v_); } |
166 | | void set_relaxed (T* v_) { v = v_; } |
167 | | T *get_relaxed () const { return v; } |
168 | | T *get_acquire () const { return v; } |
169 | | bool cmpexch (T *old, T *new_) |
170 | | { |
171 | | if (v != old) return false; |
172 | | v = new_; |
173 | | return true; |
174 | | } |
175 | | |
176 | | operator bool () const { return get_acquire () != nullptr; } |
177 | | T * operator -> () const { return get_acquire (); } |
178 | | template <typename C> operator C * () const { return get_acquire (); } |
179 | | |
180 | | T *v = nullptr; |
181 | | }; |
182 | | |
183 | | #endif |
184 | | |
185 | | |
186 | | static inline bool hb_barrier () |
187 | 85.2M | { |
188 | 85.2M | _hb_compiler_memory_r_barrier (); |
189 | 85.2M | return true; |
190 | 85.2M | } hb-aat-layout.cc:hb_barrier() Line | Count | Source | 187 | 19.7M | { | 188 | 19.7M | _hb_compiler_memory_r_barrier (); | 189 | 19.7M | return true; | 190 | 19.7M | } |
Unexecuted instantiation: hb-aat-map.cc:hb_barrier() Unexecuted instantiation: hb-blob.cc:hb_barrier() Unexecuted instantiation: hb-buffer.cc:hb_barrier() Unexecuted instantiation: hb-common.cc:hb_barrier() Unexecuted instantiation: hb-draw.cc:hb_barrier() Line | Count | Source | 187 | 27.9M | { | 188 | 27.9M | _hb_compiler_memory_r_barrier (); | 189 | 27.9M | return true; | 190 | 27.9M | } |
Unexecuted instantiation: hb-face-builder.cc:hb_barrier() Unexecuted instantiation: hb-fallback-shape.cc:hb_barrier() Line | Count | Source | 187 | 12 | { | 188 | 12 | _hb_compiler_memory_r_barrier (); | 189 | 12 | return true; | 190 | 12 | } |
Unexecuted instantiation: hb-map.cc:hb_barrier() Unexecuted instantiation: hb-number.cc:hb_barrier() hb-ot-color.cc:hb_barrier() Line | Count | Source | 187 | 3.32k | { | 188 | 3.32k | _hb_compiler_memory_r_barrier (); | 189 | 3.32k | return true; | 190 | 3.32k | } |
Unexecuted instantiation: hb-ot-face.cc:hb_barrier() hb-ot-fetch.cc:hb_barrier() Line | Count | Source | 187 | 68.5k | { | 188 | 68.5k | _hb_compiler_memory_r_barrier (); | 189 | 68.5k | return true; | 190 | 68.5k | } |
hb-ot-font.cc:hb_barrier() Line | Count | Source | 187 | 97.5k | { | 188 | 97.5k | _hb_compiler_memory_r_barrier (); | 189 | 97.5k | return true; | 190 | 97.5k | } |
Unexecuted instantiation: hb-outline.cc:hb_barrier() Unexecuted instantiation: VARC.cc:hb_barrier() hb-ot-layout.cc:hb_barrier() Line | Count | Source | 187 | 36.1M | { | 188 | 36.1M | _hb_compiler_memory_r_barrier (); | 189 | 36.1M | return true; | 190 | 36.1M | } |
Unexecuted instantiation: hb-ot-math.cc:hb_barrier() hb-ot-metrics.cc:hb_barrier() Line | Count | Source | 187 | 294 | { | 188 | 294 | _hb_compiler_memory_r_barrier (); | 189 | 294 | return true; | 190 | 294 | } |
hb-ot-name.cc:hb_barrier() Line | Count | Source | 187 | 1.11M | { | 188 | 1.11M | _hb_compiler_memory_r_barrier (); | 189 | 1.11M | return true; | 190 | 1.11M | } |
Unexecuted instantiation: hb-ot-shape.cc:hb_barrier() Unexecuted instantiation: hb-ot-tag.cc:hb_barrier() hb-ot-var.cc:hb_barrier() Line | Count | Source | 187 | 587 | { | 188 | 587 | _hb_compiler_memory_r_barrier (); | 189 | 587 | return true; | 190 | 587 | } |
Unexecuted instantiation: hb-set.cc:hb_barrier() Unexecuted instantiation: hb-shape-plan.cc:hb_barrier() Unexecuted instantiation: hb-shape.cc:hb_barrier() Unexecuted instantiation: hb-shaper.cc:hb_barrier() Unexecuted instantiation: hb-static.cc:hb_barrier() Unexecuted instantiation: hb-style.cc:hb_barrier() Unexecuted instantiation: hb-unicode.cc:hb_barrier() Unexecuted instantiation: hb-graphite2.cc:hb_barrier() Unexecuted instantiation: hb-icu.cc:hb_barrier() Unexecuted instantiation: hb-buffer-verify.cc:hb_barrier() Unexecuted instantiation: hb-paint.cc:hb_barrier() Unexecuted instantiation: hb-paint-bounded.cc:hb_barrier() Unexecuted instantiation: hb-paint-extents.cc:hb_barrier() Unexecuted instantiation: hb-ot-cff1-table.cc:hb_barrier() Unexecuted instantiation: hb-ot-cff2-table.cc:hb_barrier() Unexecuted instantiation: hb-ot-map.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-arabic.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-default.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-hangul.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-hebrew.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-indic.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-khmer.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-myanmar.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-syllabic.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-thai.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-use.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:hb_barrier() Unexecuted instantiation: hb-ot-shape-fallback.cc:hb_barrier() Unexecuted instantiation: hb-ot-shape-normalize.cc:hb_barrier() Unexecuted instantiation: hb-ucd.cc:hb_barrier() Unexecuted instantiation: hb-buffer-serialize.cc:hb_barrier() Unexecuted instantiation: hb-ot-shaper-indic-table.cc:hb_barrier() Unexecuted instantiation: hb-subset-input.cc:hb_barrier() Unexecuted instantiation: hb-subset.cc:hb_barrier() hb-subset-plan.cc:hb_barrier() Line | Count | Source | 187 | 37 | { | 188 | 37 | _hb_compiler_memory_r_barrier (); | 189 | 37 | return true; | 190 | 37 | } |
Unexecuted instantiation: hb-subset-plan-layout.cc:hb_barrier() Unexecuted instantiation: hb-subset-plan-var.cc:hb_barrier() Unexecuted instantiation: hb-subset-table-layout.cc:hb_barrier() Unexecuted instantiation: hb-subset-table-var.cc:hb_barrier() Unexecuted instantiation: hb-subset-table-cff.cc:hb_barrier() Unexecuted instantiation: hb-subset-table-color.cc:hb_barrier() hb-subset-table-other.cc:hb_barrier() Line | Count | Source | 187 | 14.6k | { | 188 | 14.6k | _hb_compiler_memory_r_barrier (); | 189 | 14.6k | return true; | 190 | 14.6k | } |
Unexecuted instantiation: gsubgpos-context.cc:hb_barrier() Unexecuted instantiation: hb-subset-cff1.cc:hb_barrier() Unexecuted instantiation: hb-subset-cff2.cc:hb_barrier() Unexecuted instantiation: hb-subset-instancer-iup.cc:hb_barrier() Unexecuted instantiation: hb-subset-instancer-solver.cc:hb_barrier() Unexecuted instantiation: hb-subset-cff-common.cc:hb_barrier() |
191 | | |
192 | | |
193 | | #endif /* HB_ATOMIC_HH */ |