| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright © 2007 Chris Wilson | 2 * Copyright © 2007 Chris Wilson |
| 3 * Copyright © 2009,2010 Red Hat, Inc. | 3 * Copyright © 2009,2010 Red Hat, Inc. |
| 4 * Copyright © 2011,2012 Google, Inc. | 4 * Copyright © 2011,2012 Google, Inc. |
| 5 * | 5 * |
| 6 * This is part of HarfBuzz, a text shaping library. | 6 * This is part of HarfBuzz, a text shaping library. |
| 7 * | 7 * |
| 8 * Permission is hereby granted, without written agreement and without | 8 * Permission is hereby granted, without written agreement and without |
| 9 * license or royalty fees, to use, copy, modify, and distribute this | 9 * license or royalty fees, to use, copy, modify, and distribute this |
| 10 * software and its documentation for any purpose, provided that the | 10 * software and its documentation for any purpose, provided that the |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 /* atomic_int */ | 38 /* atomic_int */ |
| 39 | 39 |
| 40 /* We need external help for these */ | 40 /* We need external help for these */ |
| 41 | 41 |
| 42 #if 0 | 42 #if 0 |
| 43 | 43 |
| 44 | 44 |
| 45 #elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__)) | 45 #elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__)) |
| 46 | 46 |
| 47 #define WIN32_LEAN_AND_MEAN | |
| 48 #include <windows.h> | 47 #include <windows.h> |
| 49 | 48 |
| 50 /* MinGW has a convoluted history of supporting MemoryBarrier | 49 /* MinGW has a convoluted history of supporting MemoryBarrier |
| 51 * properly. As such, define a function to wrap the whole | 50 * properly. As such, define a function to wrap the whole |
| 52 * thing. */ | 51 * thing. */ |
| 53 static inline void _HBMemoryBarrier (void) { | 52 static inline void _HBMemoryBarrier (void) { |
| 54 #if !defined(MemoryBarrier) | 53 #if !defined(MemoryBarrier) |
| 55 long dummy = 0; | 54 long dummy = 0; |
| 56 InterlockedExchange (&dummy, 1); | 55 InterlockedExchange (&dummy, 1); |
| 57 #else | 56 #else |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 #define hb_atomic_int_add(AI, V) (((AI) += (V)) - (V)) | 126 #define hb_atomic_int_add(AI, V) (((AI) += (V)) - (V)) |
| 128 | 127 |
| 129 #define hb_atomic_ptr_get(P) ((void *) *(P)) | 128 #define hb_atomic_ptr_get(P) ((void *) *(P)) |
| 130 #define hb_atomic_ptr_cmpexch(P,O,N) (* (void **) (P) == (void *) (O) ? (* (v
oid **) (P) = (void *) (N), true) : false) | 129 #define hb_atomic_ptr_cmpexch(P,O,N) (* (void **) (P) == (void *) (O) ? (* (v
oid **) (P) = (void *) (N), true) : false) |
| 131 | 130 |
| 132 #endif | 131 #endif |
| 133 | 132 |
| 134 /* TODO Add tracing. */ | 133 /* TODO Add tracing. */ |
| 135 | 134 |
| 136 #endif /* HB_ATOMIC_PRIVATE_HH */ | 135 #endif /* HB_ATOMIC_PRIVATE_HH */ |
| OLD | NEW |