/work/workdir/UnpackedTarball/cairo/src/cairo-atomic-private.h
Line | Count | Source |
1 | | /* cairo - a vector graphics library with display and print output |
2 | | * |
3 | | * Copyright © 2007 Chris Wilson |
4 | | * Copyright © 2010 Andrea Canciani |
5 | | * |
6 | | * This library is free software; you can redistribute it and/or |
7 | | * modify it either under the terms of the GNU Lesser General Public |
8 | | * License version 2.1 as published by the Free Software Foundation |
9 | | * (the "LGPL") or, at your option, under the terms of the Mozilla |
10 | | * Public License Version 1.1 (the "MPL"). If you do not alter this |
11 | | * notice, a recipient may use your version of this file under either |
12 | | * the MPL or the LGPL. |
13 | | * |
14 | | * You should have received a copy of the LGPL along with this library |
15 | | * in the file COPYING-LGPL-2.1; if not, write to the Free Software |
16 | | * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA |
17 | | * You should have received a copy of the MPL along with this library |
18 | | * in the file COPYING-MPL-1.1 |
19 | | * |
20 | | * The contents of this file are subject to the Mozilla Public License |
21 | | * Version 1.1 (the "License"); you may not use this file except in |
22 | | * compliance with the License. You may obtain a copy of the License at |
23 | | * http://www.mozilla.org/MPL/ |
24 | | * |
25 | | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY |
26 | | * OF ANY KIND, either express or implied. See the LGPL or the MPL for |
27 | | * the specific language governing rights and limitations. |
28 | | * |
29 | | * The Original Code is the cairo graphics library. |
30 | | * |
31 | | * The Initial Developer of the Original Code is University of Southern |
32 | | * California. |
33 | | * |
34 | | * Contributor(s): |
35 | | * Chris Wilson <chris@chris-wilson.co.uk> |
36 | | * Andrea Canciani <ranma42@gmail.com> |
37 | | */ |
38 | | |
39 | | #ifndef CAIRO_ATOMIC_PRIVATE_H |
40 | | #define CAIRO_ATOMIC_PRIVATE_H |
41 | | |
42 | | #include "cairo-compiler-private.h" |
43 | | |
44 | | #include "config.h" |
45 | | |
46 | | #include <assert.h> |
47 | | |
48 | | CAIRO_BEGIN_DECLS |
49 | | |
50 | | #if HAVE_C11_ATOMIC_PRIMITIVES |
51 | | |
52 | | #include <stdatomic.h> |
53 | | |
54 | | #define HAS_ATOMIC_OPS 1 |
55 | | |
56 | | typedef atomic_int cairo_atomic_int_t; |
57 | | typedef _Atomic(void *) cairo_atomic_intptr_t; |
58 | | |
59 | | static cairo_always_inline int |
60 | | _cairo_atomic_int_get (cairo_atomic_int_t *x) |
61 | 241M | { |
62 | 241M | return atomic_load_explicit (x, memory_order_seq_cst); |
63 | 241M | } cairo-font-face.c:_cairo_atomic_int_get Line | Count | Source | 61 | 105k | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 105k | } |
Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-misc.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path.c:_cairo_atomic_int_get cairo-pattern.c:_cairo_atomic_int_get Line | Count | Source | 61 | 63.2M | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 63.2M | } |
Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_int_get cairo-recording-surface.c:_cairo_atomic_int_get Line | Count | Source | 61 | 2 | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 2 | } |
Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_int_get cairo-scaled-font.c:_cairo_atomic_int_get Line | Count | Source | 61 | 8.58M | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 8.58M | } |
Unexecuted instantiation: cairo-spline.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_int_get cairo-surface.c:_cairo_atomic_int_get Line | Count | Source | 61 | 137M | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 137M | } |
Unexecuted instantiation: cairo-traps.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-version.c:_cairo_atomic_int_get cairo.c:_cairo_atomic_int_get Line | Count | Source | 61 | 29.1M | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 29.1M | } |
Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-array.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-cache.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-clip.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-color.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-damage.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-debug.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-device.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-error.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-hash.c:_cairo_atomic_int_get cairo-image-compositor.c:_cairo_atomic_int_get Line | Count | Source | 61 | 2.34M | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 2.34M | } |
Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-line.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-observer.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_int_get cairo-paginated-surface.c:_cairo_atomic_int_get Line | Count | Source | 61 | 2 | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 2 | } |
Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-pen.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_int_get cairo-region.c:_cairo_atomic_int_get Line | Count | Source | 61 | 77.1k | { | 62 | | return atomic_load_explicit (x, memory_order_seq_cst); | 63 | 77.1k | } |
Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-slope.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-spans.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-png.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-arc.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-contour.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-hull.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_int_get Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_int_get |
64 | | |
65 | | static cairo_always_inline int |
66 | | _cairo_atomic_int_get_relaxed (cairo_atomic_int_t *x) |
67 | 50.6M | { |
68 | 50.6M | return atomic_load_explicit (x, memory_order_relaxed); |
69 | 50.6M | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-misc.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path.c:_cairo_atomic_int_get_relaxed cairo-pattern.c:_cairo_atomic_int_get_relaxed Line | Count | Source | 67 | 12.1M | { | 68 | | return atomic_load_explicit (x, memory_order_relaxed); | 69 | 12.1M | } |
Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-spline.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-surface.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-traps.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-version.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-array.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-cache.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_int_get_relaxed cairo-clip.c:_cairo_atomic_int_get_relaxed Line | Count | Source | 67 | 9.29M | { | 68 | | return atomic_load_explicit (x, memory_order_relaxed); | 69 | 9.29M | } |
Unexecuted instantiation: cairo-color.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-damage.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-debug.c:_cairo_atomic_int_get_relaxed cairo-default-context.c:_cairo_atomic_int_get_relaxed Line | Count | Source | 67 | 29.1M | { | 68 | | return atomic_load_explicit (x, memory_order_relaxed); | 69 | 29.1M | } |
Unexecuted instantiation: cairo-device.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-error.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-hash.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-line.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-observer.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-pen.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-region.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-slope.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-spans.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-png.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-arc.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-contour.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-hull.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_int_get_relaxed Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_int_get_relaxed |
70 | | |
71 | | static cairo_always_inline void |
72 | | _cairo_atomic_int_set_relaxed (cairo_atomic_int_t *x, int val) |
73 | 50.6M | { |
74 | 50.6M | atomic_store_explicit (x, val, memory_order_relaxed); |
75 | 50.6M | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-misc.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path.c:_cairo_atomic_int_set_relaxed cairo-pattern.c:_cairo_atomic_int_set_relaxed Line | Count | Source | 73 | 12.1M | { | 74 | | atomic_store_explicit (x, val, memory_order_relaxed); | 75 | 12.1M | } |
Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-spline.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-surface.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-traps.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-version.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-array.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-cache.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_int_set_relaxed cairo-clip.c:_cairo_atomic_int_set_relaxed Line | Count | Source | 73 | 9.29M | { | 74 | | atomic_store_explicit (x, val, memory_order_relaxed); | 75 | 9.29M | } |
Unexecuted instantiation: cairo-color.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-damage.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-debug.c:_cairo_atomic_int_set_relaxed cairo-default-context.c:_cairo_atomic_int_set_relaxed Line | Count | Source | 73 | 29.1M | { | 74 | | atomic_store_explicit (x, val, memory_order_relaxed); | 75 | 29.1M | } |
Unexecuted instantiation: cairo-device.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-error.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_int_set_relaxed cairo-freed-pool.c:_cairo_atomic_int_set_relaxed Line | Count | Source | 73 | 140 | { | 74 | | atomic_store_explicit (x, val, memory_order_relaxed); | 75 | 140 | } |
Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-hash.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-line.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-observer.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-pen.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-region.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-slope.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-spans.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-png.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-arc.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-contour.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-hull.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_int_set_relaxed Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_int_set_relaxed |
76 | | |
77 | | static cairo_always_inline void * |
78 | | _cairo_atomic_ptr_get (cairo_atomic_intptr_t *x) |
79 | 25.3M | { |
80 | 25.3M | return atomic_load_explicit (x, memory_order_seq_cst); |
81 | 25.3M | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-misc.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path.c:_cairo_atomic_ptr_get cairo-pattern.c:_cairo_atomic_ptr_get Line | Count | Source | 79 | 6.07M | { | 80 | | return atomic_load_explicit (x, memory_order_seq_cst); | 81 | 6.07M | } |
Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-spline.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-surface.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-traps.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-version.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-array.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-cache.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_ptr_get cairo-clip.c:_cairo_atomic_ptr_get Line | Count | Source | 79 | 4.64M | { | 80 | | return atomic_load_explicit (x, memory_order_seq_cst); | 81 | 4.64M | } |
Unexecuted instantiation: cairo-color.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-damage.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-debug.c:_cairo_atomic_ptr_get cairo-default-context.c:_cairo_atomic_ptr_get Line | Count | Source | 79 | 14.5M | { | 80 | | return atomic_load_explicit (x, memory_order_seq_cst); | 81 | 14.5M | } |
Unexecuted instantiation: cairo-device.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-error.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_ptr_get cairo-freed-pool.c:_cairo_atomic_ptr_get Line | Count | Source | 79 | 2.24k | { | 80 | | return atomic_load_explicit (x, memory_order_seq_cst); | 81 | 2.24k | } |
Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-hash.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-line.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-observer.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-pen.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-region.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-slope.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-spans.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-png.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-arc.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-contour.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-hull.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_ptr_get Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_ptr_get |
82 | | |
83 | 40.5M | # define _cairo_atomic_int_inc(x) ((void) atomic_fetch_add_explicit(x, 1, memory_order_seq_cst)) |
84 | | # define _cairo_atomic_int_dec(x) ((void) atomic_fetch_sub_explicit(x, 1, memory_order_seq_cst)) |
85 | 63.5M | # define _cairo_atomic_int_dec_and_test(x) (atomic_fetch_sub_explicit(x, 1, memory_order_seq_cst) == 1) |
86 | | |
87 | | |
88 | | static cairo_always_inline cairo_bool_t |
89 | | _cairo_atomic_int_cmpxchg_impl(cairo_atomic_int_t *x, |
90 | | int oldv, |
91 | | int newv) |
92 | 2.37M | { |
93 | 2.37M | int expected = oldv; |
94 | 2.37M | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); |
95 | 2.37M | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-misc.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_int_cmpxchg_impl cairo-recording-surface.c:_cairo_atomic_int_cmpxchg_impl Line | Count | Source | 92 | 2 | { | 93 | 2 | int expected = oldv; | 94 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 95 | 2 | } |
Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-spline.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_int_cmpxchg_impl cairo-surface.c:_cairo_atomic_int_cmpxchg_impl Line | Count | Source | 92 | 2.37M | { | 93 | 2.37M | int expected = oldv; | 94 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 95 | 2.37M | } |
Unexecuted instantiation: cairo-traps.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-version.c:_cairo_atomic_int_cmpxchg_impl cairo.c:_cairo_atomic_int_cmpxchg_impl Line | Count | Source | 92 | 1.01k | { | 93 | 1.01k | int expected = oldv; | 94 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 95 | 1.01k | } |
Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-array.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-cache.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-clip.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-color.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-damage.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-debug.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-device.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-error.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-hash.c:_cairo_atomic_int_cmpxchg_impl cairo-image-compositor.c:_cairo_atomic_int_cmpxchg_impl Line | Count | Source | 92 | 256 | { | 93 | 256 | int expected = oldv; | 94 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 95 | 256 | } |
Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-line.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-observer.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-pen.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-region.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-slope.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-spans.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-png.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-arc.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-contour.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-hull.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_int_cmpxchg_impl Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_int_cmpxchg_impl |
96 | | |
97 | | #define _cairo_atomic_int_cmpxchg(x, oldv, newv) \ |
98 | 2.37M | _cairo_atomic_int_cmpxchg_impl(x, oldv, newv) |
99 | | |
100 | | static cairo_always_inline int |
101 | | _cairo_atomic_int_cmpxchg_return_old_impl(cairo_atomic_int_t *x, |
102 | | int oldv, |
103 | | int newv) |
104 | 26.8k | { |
105 | 26.8k | int expected = oldv; |
106 | 26.8k | (void) atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); |
107 | 26.8k | return expected; |
108 | 26.8k | } cairo-font-face.c:_cairo_atomic_int_cmpxchg_return_old_impl Line | Count | Source | 104 | 26.8k | { | 105 | 26.8k | int expected = oldv; | 106 | | (void) atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 107 | 26.8k | return expected; | 108 | 26.8k | } |
Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-misc.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-spline.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-traps.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-version.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-array.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-cache.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-color.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-damage.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-debug.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-device.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-error.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-hash.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-line.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-observer.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-pen.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-region.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-slope.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-spans.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-png.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-arc.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-contour.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-hull.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_int_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_int_cmpxchg_return_old_impl |
109 | | |
110 | | #define _cairo_atomic_int_cmpxchg_return_old(x, oldv, newv) \ |
111 | 26.8k | _cairo_atomic_int_cmpxchg_return_old_impl(x, oldv, newv) |
112 | | |
113 | | static cairo_always_inline cairo_bool_t |
114 | | _cairo_atomic_ptr_cmpxchg_impl(cairo_atomic_intptr_t *x, void *oldv, void *newv) |
115 | 50.6M | { |
116 | 50.6M | void *expected = oldv; |
117 | 50.6M | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); |
118 | 50.6M | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-misc.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path.c:_cairo_atomic_ptr_cmpxchg_impl cairo-pattern.c:_cairo_atomic_ptr_cmpxchg_impl Line | Count | Source | 115 | 12.1M | { | 116 | 12.1M | void *expected = oldv; | 117 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 118 | 12.1M | } |
Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-spline.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-surface.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-traps.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-version.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-array.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-cache.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_ptr_cmpxchg_impl cairo-clip.c:_cairo_atomic_ptr_cmpxchg_impl Line | Count | Source | 115 | 9.29M | { | 116 | 9.29M | void *expected = oldv; | 117 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 118 | 9.29M | } |
Unexecuted instantiation: cairo-color.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-damage.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-debug.c:_cairo_atomic_ptr_cmpxchg_impl cairo-default-context.c:_cairo_atomic_ptr_cmpxchg_impl Line | Count | Source | 115 | 29.1M | { | 116 | 29.1M | void *expected = oldv; | 117 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 118 | 29.1M | } |
Unexecuted instantiation: cairo-device.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-error.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_ptr_cmpxchg_impl cairo-freed-pool.c:_cairo_atomic_ptr_cmpxchg_impl Line | Count | Source | 115 | 2.24k | { | 116 | 2.24k | void *expected = oldv; | 117 | | return atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); | 118 | 2.24k | } |
Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-hash.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-line.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-observer.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-pen.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-region.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-slope.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-spans.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-png.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-arc.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-contour.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-hull.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_ptr_cmpxchg_impl Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_ptr_cmpxchg_impl |
119 | | |
120 | | #define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) \ |
121 | 50.6M | _cairo_atomic_ptr_cmpxchg_impl(x, oldv, newv) |
122 | | |
123 | | static cairo_always_inline void * |
124 | | _cairo_atomic_ptr_cmpxchg_return_old_impl(cairo_atomic_intptr_t *x, void *oldv, void *newv) |
125 | 0 | { |
126 | 0 | void *expected = oldv; |
127 | 0 | (void) atomic_compare_exchange_strong_explicit (x, &expected, newv, memory_order_seq_cst, memory_order_seq_cst); |
128 | 0 | return expected; |
129 | 0 | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-misc.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-spline.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-traps.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-version.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-array.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-cache.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-color.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-damage.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-debug.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-device.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-error.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-hash.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-line.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-observer.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-pen.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-region.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-slope.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-spans.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-png.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-arc.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-contour.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-hull.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_ptr_cmpxchg_return_old_impl Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_ptr_cmpxchg_return_old_impl |
130 | | |
131 | | #define _cairo_atomic_ptr_cmpxchg_return_old(x, oldv, newv) \ |
132 | | _cairo_atomic_ptr_cmpxchg_return_old_impl(x, oldv, newv) |
133 | | |
134 | | #endif /* HAVE_C11_ATOMIC_PRIMITIVES */ |
135 | | |
136 | | /* C++11 atomic primitives were designed to be more flexible than the |
137 | | * __sync_* family of primitives. Despite the name, they are available |
138 | | * in C as well as C++. The motivating reason for using them is that |
139 | | * for _cairo_atomic_{int,ptr}_get, the compiler is able to see that |
140 | | * the load is intended to be atomic, as opposed to the __sync_* |
141 | | * version, below, where the load looks like a plain load. Having |
142 | | * the load appear atomic to the compiler is particular important for |
143 | | * tools like ThreadSanitizer so they don't report false positives on |
144 | | * memory operations that we intend to be atomic. |
145 | | */ |
146 | | #if HAVE_CXX11_ATOMIC_PRIMITIVES |
147 | | |
148 | | #define HAS_ATOMIC_OPS 1 |
149 | | |
150 | | typedef int cairo_atomic_int_t; |
151 | | typedef intptr_t cairo_atomic_intptr_t; |
152 | | |
153 | | static cairo_always_inline int |
154 | | _cairo_atomic_int_get (cairo_atomic_int_t *x) |
155 | | { |
156 | | return __atomic_load_n(x, __ATOMIC_SEQ_CST); |
157 | | } |
158 | | |
159 | | static cairo_always_inline int |
160 | | _cairo_atomic_int_get_relaxed (cairo_atomic_int_t *x) |
161 | | { |
162 | | return __atomic_load_n(x, __ATOMIC_RELAXED); |
163 | | } |
164 | | |
165 | | static cairo_always_inline void |
166 | | _cairo_atomic_int_set_relaxed (cairo_atomic_int_t *x, int val) |
167 | | { |
168 | | __atomic_store_n(x, val, __ATOMIC_RELAXED); |
169 | | } |
170 | | |
171 | | static cairo_always_inline void * |
172 | | _cairo_atomic_ptr_get (cairo_atomic_intptr_t *x) |
173 | | { |
174 | | return (void*)__atomic_load_n(x, __ATOMIC_SEQ_CST); |
175 | | } |
176 | | |
177 | | # define _cairo_atomic_int_inc(x) ((void) __atomic_fetch_add(x, 1, __ATOMIC_SEQ_CST)) |
178 | | # define _cairo_atomic_int_dec(x) ((void) __atomic_fetch_sub(x, 1, __ATOMIC_SEQ_CST)) |
179 | | # define _cairo_atomic_int_dec_and_test(x) (__atomic_fetch_sub(x, 1, __ATOMIC_SEQ_CST) == 1) |
180 | | |
181 | | static cairo_always_inline cairo_bool_t |
182 | | _cairo_atomic_int_cmpxchg_impl(cairo_atomic_int_t *x, |
183 | | int oldv, |
184 | | int newv) |
185 | | { |
186 | | int expected = oldv; |
187 | | return __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); |
188 | | } |
189 | | |
190 | | #define _cairo_atomic_int_cmpxchg(x, oldv, newv) \ |
191 | | _cairo_atomic_int_cmpxchg_impl(x, oldv, newv) |
192 | | |
193 | | static cairo_always_inline int |
194 | | _cairo_atomic_int_cmpxchg_return_old_impl(cairo_atomic_int_t *x, |
195 | | int oldv, |
196 | | int newv) |
197 | | { |
198 | | int expected = oldv; |
199 | | (void) __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); |
200 | | return expected; |
201 | | } |
202 | | |
203 | | #define _cairo_atomic_int_cmpxchg_return_old(x, oldv, newv) \ |
204 | | _cairo_atomic_int_cmpxchg_return_old_impl(x, oldv, newv) |
205 | | |
206 | | static cairo_always_inline cairo_bool_t |
207 | | _cairo_atomic_ptr_cmpxchg_impl(cairo_atomic_intptr_t *x, void *oldv, void *newv) |
208 | | { |
209 | | intptr_t expected = (intptr_t)oldv; |
210 | | return __atomic_compare_exchange_n(x, &expected, (intptr_t)newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); |
211 | | } |
212 | | |
213 | | #define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) \ |
214 | | _cairo_atomic_ptr_cmpxchg_impl(x, oldv, newv) |
215 | | |
216 | | static cairo_always_inline void * |
217 | | _cairo_atomic_ptr_cmpxchg_return_old_impl(cairo_atomic_intptr_t *x, void *oldv, void *newv) |
218 | | { |
219 | | intptr_t expected = (intptr_t)oldv; |
220 | | (void) __atomic_compare_exchange_n(x, &expected, (intptr_t)newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); |
221 | | return (void*)expected; |
222 | | } |
223 | | |
224 | | #define _cairo_atomic_ptr_cmpxchg_return_old(x, oldv, newv) \ |
225 | | _cairo_atomic_ptr_cmpxchg_return_old_impl(x, oldv, newv) |
226 | | |
227 | | #endif /* HAVE_CXX11_ATOMIC_PRIMITIVES */ |
228 | | |
229 | | #if HAVE_GCC_LEGACY_ATOMICS |
230 | | |
231 | | #define HAS_ATOMIC_OPS 1 |
232 | | |
233 | | typedef int cairo_atomic_int_t; |
234 | | typedef intptr_t cairo_atomic_intptr_t; |
235 | | |
236 | | static cairo_always_inline int |
237 | | _cairo_atomic_int_get (cairo_atomic_int_t *x) |
238 | | { |
239 | | __sync_synchronize (); |
240 | | return *x; |
241 | | } |
242 | | |
243 | | static cairo_always_inline int |
244 | | _cairo_atomic_int_get_relaxed (cairo_atomic_int_t *x) |
245 | | { |
246 | | return *x; |
247 | | } |
248 | | |
249 | | static cairo_always_inline void |
250 | | _cairo_atomic_int_set_relaxed (cairo_atomic_int_t *x, int val) |
251 | | { |
252 | | *x = val; |
253 | | } |
254 | | |
255 | | static cairo_always_inline void * |
256 | | _cairo_atomic_ptr_get (cairo_atomic_intptr_t *x) |
257 | | { |
258 | | __sync_synchronize (); |
259 | | return (void*)*x; |
260 | | } |
261 | | |
262 | | # define _cairo_atomic_int_inc(x) ((void) __sync_fetch_and_add(x, 1)) |
263 | | # define _cairo_atomic_int_dec(x) ((void) __sync_fetch_and_add(x, -1)) |
264 | | # define _cairo_atomic_int_dec_and_test(x) (__sync_fetch_and_add(x, -1) == 1) |
265 | | # define _cairo_atomic_int_cmpxchg(x, oldv, newv) __sync_bool_compare_and_swap (x, oldv, newv) |
266 | | # define _cairo_atomic_int_cmpxchg_return_old(x, oldv, newv) __sync_val_compare_and_swap (x, oldv, newv) |
267 | | |
268 | | # define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) \ |
269 | | __sync_bool_compare_and_swap ((cairo_atomic_intptr_t*)x, (cairo_atomic_intptr_t)oldv, (cairo_atomic_intptr_t)newv) |
270 | | |
271 | | # define _cairo_atomic_ptr_cmpxchg_return_old(x, oldv, newv) \ |
272 | | _cairo_atomic_intptr_to_voidptr (__sync_val_compare_and_swap ((cairo_atomic_intptr_t*)x, (cairo_atomic_intptr_t)oldv, (cairo_atomic_intptr_t)newv)) |
273 | | |
274 | | #endif /* HAVE_GCC_LEGACY_ATOMICS */ |
275 | | |
276 | | #if HAVE_LIB_ATOMIC_OPS |
277 | | #include <atomic_ops.h> |
278 | | |
279 | | #define HAS_ATOMIC_OPS 1 |
280 | | |
281 | | typedef AO_t cairo_atomic_int_t; |
282 | | |
283 | | # define _cairo_atomic_int_get(x) (AO_load_full (x)) |
284 | | # define _cairo_atomic_int_get_relaxed(x) (AO_load_full (x)) |
285 | | # define _cairo_atomic_int_set_relaxed(x, val) (AO_store_full ((x), (val))) |
286 | | |
287 | | # define _cairo_atomic_int_inc(x) ((void) AO_fetch_and_add1_full(x)) |
288 | | # define _cairo_atomic_int_dec(x) ((void) AO_fetch_and_sub1_full(x)) |
289 | | # define _cairo_atomic_int_dec_and_test(x) (AO_fetch_and_sub1_full(x) == 1) |
290 | | # define _cairo_atomic_int_cmpxchg(x, oldv, newv) AO_compare_and_swap_full(x, oldv, newv) |
291 | | |
292 | | typedef intptr_t cairo_atomic_intptr_t; |
293 | | |
294 | | # define _cairo_atomic_ptr_get(x) _cairo_atomic_intptr_to_voidptr (AO_load_full (x)) |
295 | | # define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) \ |
296 | | _cairo_atomic_int_cmpxchg ((cairo_atomic_intptr_t*)(x), (cairo_atomic_intptr_t)oldv, (cairo_atomic_intptr_t)newv) |
297 | | |
298 | | #endif |
299 | | |
300 | | #if HAVE_OS_ATOMIC_OPS |
301 | | #include <libkern/OSAtomic.h> |
302 | | |
303 | | #define HAS_ATOMIC_OPS 1 |
304 | | |
305 | | typedef int32_t cairo_atomic_int_t; |
306 | | typedef intptr_t cairo_atomic_intptr_t; |
307 | | |
308 | | # define _cairo_atomic_int_get(x) (OSMemoryBarrier(), *(x)) |
309 | | # define _cairo_atomic_int_get_relaxed(x) *(x) |
310 | | # define _cairo_atomic_int_set_relaxed(x, val) *(x) = (val) |
311 | | |
312 | | # define _cairo_atomic_int_inc(x) ((void) OSAtomicIncrement32Barrier (x)) |
313 | | # define _cairo_atomic_int_dec(x) ((void) OSAtomicDecrement32Barrier (x)) |
314 | | # define _cairo_atomic_int_dec_and_test(x) (OSAtomicDecrement32Barrier (x) == 0) |
315 | | # define _cairo_atomic_int_cmpxchg(x, oldv, newv) OSAtomicCompareAndSwap32Barrier(oldv, newv, x) |
316 | | |
317 | | #if SIZEOF_VOID_P==4 |
318 | | # define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) \ |
319 | | OSAtomicCompareAndSwap32Barrier((cairo_atomic_intptr_t)oldv, (cairo_atomic_intptr_t)newv, (cairo_atomic_intptr_t *)x) |
320 | | |
321 | | #elif SIZEOF_VOID_P==8 |
322 | | # define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) \ |
323 | | OSAtomicCompareAndSwap64Barrier((cairo_atomic_intptr_t)oldv, (cairo_atomic_intptr_t)newv, (cairo_atomic_intptr_t *)x) |
324 | | |
325 | | #else |
326 | | #error No matching integer pointer type |
327 | | #endif |
328 | | |
329 | | # define _cairo_atomic_ptr_get(x) (OSMemoryBarrier(), *(x)) |
330 | | |
331 | | #endif /* HAVE_OS_ATOMIC_OPS */ |
332 | | |
333 | | #if !defined(HAS_ATOMIC_OPS) && defined(_WIN32) |
334 | | #include <windows.h> |
335 | | |
336 | | #define HAS_ATOMIC_OPS 1 |
337 | | |
338 | | typedef LONG cairo_atomic_int_t; |
339 | | typedef PVOID cairo_atomic_intptr_t; |
340 | | |
341 | | static cairo_always_inline int |
342 | | _cairo_atomic_int_get (cairo_atomic_int_t *x) |
343 | | { |
344 | | MemoryBarrier (); |
345 | | return *x; |
346 | | } |
347 | | |
348 | | # define _cairo_atomic_int_get_relaxed(x) *(x) |
349 | | # define _cairo_atomic_int_set_relaxed(x, val) *(x) = (val) |
350 | | |
351 | | # define _cairo_atomic_int_inc(x) ((void) InterlockedIncrement (x)) |
352 | | # define _cairo_atomic_int_dec(x) ((void) InterlockedDecrement (x)) |
353 | | # define _cairo_atomic_int_dec_and_test(x) (InterlockedDecrement (x) == 0) |
354 | | |
355 | | static cairo_always_inline cairo_bool_t |
356 | | _cairo_atomic_int_cmpxchg (cairo_atomic_int_t *x, |
357 | | int oldv, |
358 | | int newv) |
359 | | { |
360 | | return InterlockedCompareExchange (x, (LONG)newv, (LONG)oldv) == oldv; |
361 | | } |
362 | | |
363 | | static cairo_always_inline void * |
364 | | _cairo_atomic_ptr_get (cairo_atomic_intptr_t *x) |
365 | | { |
366 | | MemoryBarrier (); |
367 | | return (void *) *x; |
368 | | } |
369 | | |
370 | | static cairo_always_inline cairo_bool_t |
371 | | _cairo_atomic_ptr_cmpxchg (cairo_atomic_intptr_t *x, void *oldv, void *newv) |
372 | | { |
373 | | return InterlockedCompareExchangePointer (x, newv, oldv) == oldv; |
374 | | } |
375 | | |
376 | | static cairo_always_inline void * |
377 | | _cairo_atomic_ptr_cmpxchg_return_old (cairo_atomic_intptr_t *x, void *oldv, void *newv) |
378 | | { |
379 | | return InterlockedCompareExchangePointer (x, newv, oldv); |
380 | | } |
381 | | |
382 | | #endif /* !defined(HAS_ATOMIC_OPS) && defined(_WIN32) */ |
383 | | |
384 | | |
385 | | #ifndef HAS_ATOMIC_OPS |
386 | | |
387 | | typedef int cairo_atomic_int_t; |
388 | | typedef intptr_t cairo_atomic_intptr_t; |
389 | | |
390 | | cairo_private void |
391 | | _cairo_atomic_int_inc (cairo_atomic_int_t *x); |
392 | | |
393 | | #define _cairo_atomic_int_dec(x) _cairo_atomic_int_dec_and_test(x) |
394 | | |
395 | | cairo_private cairo_bool_t |
396 | | _cairo_atomic_int_dec_and_test (cairo_atomic_int_t *x); |
397 | | |
398 | | cairo_private int |
399 | | _cairo_atomic_int_cmpxchg_return_old_impl (cairo_atomic_int_t *x, int oldv, int newv); |
400 | | |
401 | | cairo_private void * |
402 | | _cairo_atomic_ptr_cmpxchg_return_old_impl (cairo_atomic_intptr_t *x, void *oldv, void *newv); |
403 | | |
404 | | #define _cairo_atomic_int_cmpxchg_return_old(x, oldv, newv) _cairo_atomic_int_cmpxchg_return_old_impl (x, oldv, newv) |
405 | | #define _cairo_atomic_ptr_cmpxchg_return_old(x, oldv, newv) _cairo_atomic_ptr_cmpxchg_return_old_impl (x, oldv, newv) |
406 | | |
407 | | #ifdef ATOMIC_OP_NEEDS_MEMORY_BARRIER |
408 | | cairo_private int |
409 | | _cairo_atomic_int_get (cairo_atomic_int_t *x); |
410 | | cairo_private int |
411 | | _cairo_atomic_int_get_relaxed (cairo_atomic_int_t *x); |
412 | | void |
413 | | _cairo_atomic_int_set_relaxed (cairo_atomic_int_t *x, int val); |
414 | | cairo_private void* |
415 | | _cairo_atomic_ptr_get(cairo_atomic_intptr_t *x); |
416 | | #else |
417 | | # define _cairo_atomic_int_get(x) (*x) |
418 | | # define _cairo_atomic_int_get_relaxed(x) (*x) |
419 | | # define _cairo_atomic_int_set_relaxed(x, val) (*x) = (val) |
420 | | # define _cairo_atomic_ptr_get(x) (*x) |
421 | | #endif |
422 | | |
423 | | #else |
424 | | |
425 | | /* Workaround GCC complaining about casts */ |
426 | | static cairo_always_inline void * |
427 | | _cairo_atomic_intptr_to_voidptr (cairo_atomic_intptr_t x) |
428 | 0 | { |
429 | 0 | return (void *) x; |
430 | 0 | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-misc.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-spline.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-surface.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-traps.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-version.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-array.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-cache.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-clip.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-color.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-damage.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-debug.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-device.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-error.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-hash.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-line.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-observer.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-pen.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-region.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-slope.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-spans.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-png.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-arc.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-contour.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-hull.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_intptr_to_voidptr Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_intptr_to_voidptr |
431 | | |
432 | | static cairo_always_inline int |
433 | | _cairo_atomic_int_cmpxchg_return_old_fallback(cairo_atomic_int_t *x, int oldv, int newv) |
434 | 0 | { |
435 | 0 | int curr; |
436 | 0 |
|
437 | 0 | do { |
438 | 0 | curr = _cairo_atomic_int_get (x); |
439 | 0 | } while (curr == oldv && !_cairo_atomic_int_cmpxchg (x, oldv, newv)); |
440 | 0 |
|
441 | 0 | return curr; |
442 | 0 | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-misc.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-spline.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-traps.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-version.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-array.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-cache.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-color.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-damage.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-debug.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-device.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-error.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-hash.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-line.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-observer.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-pen.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-region.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-slope.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-spans.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-png.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-arc.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-contour.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-hull.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_int_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_int_cmpxchg_return_old_fallback |
443 | | |
444 | | static cairo_always_inline void * |
445 | | _cairo_atomic_ptr_cmpxchg_return_old_fallback(cairo_atomic_intptr_t *x, void *oldv, void *newv) |
446 | 0 | { |
447 | 0 | void *curr; |
448 | 0 |
|
449 | 0 | do { |
450 | 0 | curr = _cairo_atomic_ptr_get (x); |
451 | 0 | } while (curr == oldv && !_cairo_atomic_ptr_cmpxchg (x, oldv, newv)); |
452 | 0 |
|
453 | 0 | return curr; |
454 | 0 | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-misc.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-spline.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-traps.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-version.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-array.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-cache.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-color.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-damage.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-debug.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-device.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-error.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-hash.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-line.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-observer.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-pen.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-region.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-slope.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-spans.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-png.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-arc.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-contour.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-hull.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_ptr_cmpxchg_return_old_fallback |
455 | | #endif |
456 | | |
457 | | #ifndef _cairo_atomic_int_cmpxchg_return_old |
458 | | #define _cairo_atomic_int_cmpxchg_return_old(x, oldv, newv) _cairo_atomic_int_cmpxchg_return_old_fallback (x, oldv, newv) |
459 | | #endif |
460 | | |
461 | | #ifndef _cairo_atomic_ptr_cmpxchg_return_old |
462 | | #define _cairo_atomic_ptr_cmpxchg_return_old(x, oldv, newv) _cairo_atomic_ptr_cmpxchg_return_old_fallback (x, oldv, newv) |
463 | | #endif |
464 | | |
465 | | #ifndef _cairo_atomic_int_cmpxchg |
466 | | #define _cairo_atomic_int_cmpxchg(x, oldv, newv) (_cairo_atomic_int_cmpxchg_return_old (x, oldv, newv) == oldv) |
467 | | #endif |
468 | | |
469 | | #ifndef _cairo_atomic_ptr_cmpxchg |
470 | | #define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) (_cairo_atomic_ptr_cmpxchg_return_old (x, oldv, newv) == oldv) |
471 | | #endif |
472 | | |
473 | 2.37M | #define _cairo_atomic_uint_get(x) _cairo_atomic_int_get(x) |
474 | | #define _cairo_atomic_uint_cmpxchg(x, oldv, newv) \ |
475 | 2.37M | _cairo_atomic_int_cmpxchg((cairo_atomic_int_t *)x, oldv, newv) |
476 | | |
477 | 1.06k | #define _cairo_status_set_error(status, err) do { \ |
478 | 1.06k | int ret__; \ |
479 | 1.06k | assert (err < CAIRO_STATUS_LAST_STATUS); \ |
480 | 1.06k | assert (sizeof(*status) == sizeof(cairo_atomic_int_t)); \ |
481 | 1.06k | /* hide compiler warnings about cairo_status_t != int (gcc treats its as \ |
482 | 1.06k | * an unsigned integer instead, and about ignoring the return value. */ \ |
483 | 1.06k | ret__ = _cairo_atomic_int_cmpxchg ((cairo_atomic_int_t *) status, CAIRO_STATUS_SUCCESS, err); \ |
484 | 1.06k | (void) ret__; \ |
485 | 1.06k | } while (0) |
486 | | |
487 | | typedef cairo_atomic_int_t cairo_atomic_once_t; |
488 | | |
489 | 2.34M | #define CAIRO_ATOMIC_ONCE_UNINITIALIZED (0) |
490 | | #define CAIRO_ATOMIC_ONCE_INITIALIZING (1) |
491 | 0 | #define CAIRO_ATOMIC_ONCE_INITIALIZED (2) |
492 | 2.34M | #define CAIRO_ATOMIC_ONCE_INIT CAIRO_ATOMIC_ONCE_UNINITIALIZED |
493 | | |
494 | | static cairo_always_inline cairo_bool_t |
495 | | _cairo_atomic_init_once_enter(cairo_atomic_once_t *once) |
496 | 2.34M | { |
497 | 2.34M | if (likely(_cairo_atomic_int_get(once) == CAIRO_ATOMIC_ONCE_INITIALIZED)) |
498 | 2.34M | return 0; |
499 | | |
500 | 128 | if (_cairo_atomic_int_cmpxchg(once, |
501 | 128 | CAIRO_ATOMIC_ONCE_UNINITIALIZED, |
502 | 128 | CAIRO_ATOMIC_ONCE_INITIALIZING)) |
503 | 128 | return 1; |
504 | | |
505 | 0 | while (_cairo_atomic_int_get(once) != CAIRO_ATOMIC_ONCE_INITIALIZED) {} |
506 | 0 | return 0; |
507 | 128 | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-misc.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-spline.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-surface.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-traps.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-version.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-array.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-cache.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-clip.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-color.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-damage.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-debug.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-device.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-error.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-hash.c:_cairo_atomic_init_once_enter cairo-image-compositor.c:_cairo_atomic_init_once_enter Line | Count | Source | 496 | 2.34M | { | 497 | 2.34M | if (likely(_cairo_atomic_int_get(once) == CAIRO_ATOMIC_ONCE_INITIALIZED)) | 498 | 2.34M | return 0; | 499 | | | 500 | 128 | if (_cairo_atomic_int_cmpxchg(once, | 501 | 128 | CAIRO_ATOMIC_ONCE_UNINITIALIZED, | 502 | 128 | CAIRO_ATOMIC_ONCE_INITIALIZING)) | 503 | 128 | return 1; | 504 | | | 505 | 0 | while (_cairo_atomic_int_get(once) != CAIRO_ATOMIC_ONCE_INITIALIZED) {} | 506 | 0 | return 0; | 507 | 128 | } |
Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-line.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-observer.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-pen.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-region.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-slope.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-spans.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-png.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-arc.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-contour.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-hull.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_init_once_enter Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_init_once_enter |
508 | | |
509 | | static cairo_always_inline void |
510 | | _cairo_atomic_init_once_leave(cairo_atomic_once_t *once) |
511 | 128 | { |
512 | 128 | if (unlikely(!_cairo_atomic_int_cmpxchg(once, |
513 | 128 | CAIRO_ATOMIC_ONCE_INITIALIZING, |
514 | 128 | CAIRO_ATOMIC_ONCE_INITIALIZED))) |
515 | | assert (0 && "incorrect use of _cairo_atomic_init_once API (once != CAIRO_ATOMIC_ONCE_INITIALIZING)"); |
516 | 128 | } Unexecuted instantiation: cairo-font-face.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-font-options.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-image-surface.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-matrix.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-misc.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-mutex.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-pattern.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-raster-source-pattern.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-recording-surface.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-rectangle.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-scaled-font.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-spline.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-stroke-style.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-surface-snapshot.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-surface-wrapper.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-surface.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-traps.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-unicode.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-version.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-svg-surface.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-ft-font.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-colr-glyph-render.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-svg-glyph-render.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-analysis-surface.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-array.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-boxes.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-cache.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-clip-boxes.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-clip.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-color.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-composite-rectangles.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-compositor.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-damage.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-debug.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-default-context.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-device.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-error.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-font-face-twin.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-freed-pool.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-gstate.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-hash.c:_cairo_atomic_init_once_leave cairo-image-compositor.c:_cairo_atomic_init_once_leave Line | Count | Source | 511 | 128 | { | 512 | 128 | if (unlikely(!_cairo_atomic_int_cmpxchg(once, | 513 | 128 | CAIRO_ATOMIC_ONCE_INITIALIZING, | 514 | 128 | CAIRO_ATOMIC_ONCE_INITIALIZED))) | 515 | | assert (0 && "incorrect use of _cairo_atomic_init_once API (once != CAIRO_ATOMIC_ONCE_INITIALIZING)"); | 516 | 128 | } |
Unexecuted instantiation: cairo-image-info.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-image-source.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-line.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-mask-compositor.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-mesh-pattern-rasterizer.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-mono-scan-converter.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-no-compositor.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-observer.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-output-stream.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-paginated-surface.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-bounds.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-fill.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-fixed.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-in-fill.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-stroke.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-pen.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-polygon.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-region.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-shape-mask-compositor.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-slope.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-spans-compositor.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-spans.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-stroke-dash.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-surface-clipper.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-surface-offset.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-tor-scan-converter.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-tor22-scan-converter.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-toy-font-face.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-traps-compositor.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-user-font.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-scaled-font-subsets.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-truetype-subset.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-type1-glyph-names.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-type1-subset.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-png.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-arc.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-bentley-ottmann-rectangular.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-bentley-ottmann-rectilinear.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-bentley-ottmann.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-boxes-intersect.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-clip-polygon.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-clip-region.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-clip-surface.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-contour.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-font-face-twin-data.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-freelist.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-hull.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-polygon-intersect.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-polygon-reduce.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-rectangular-scan-converter.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-wideint.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-cff-subset.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-type1-fallback.c:_cairo_atomic_init_once_leave Unexecuted instantiation: cairo-surface-subsurface.c:_cairo_atomic_init_once_leave |
517 | | |
518 | | CAIRO_END_DECLS |
519 | | |
520 | | #endif |