Index: src/ports/SkAtomics_android.h |
diff --git a/src/ports/SkAtomics_android.h b/src/ports/SkAtomics_android.h |
index 5cc8ba54301f7d0b5c740b452eb282056116d3dd..e1b99524bd62a002befdf9487730fca7f952b72f 100644 |
--- a/src/ports/SkAtomics_android.h |
+++ b/src/ports/SkAtomics_android.h |
@@ -36,6 +36,13 @@ static inline __attribute__((always_inline)) int32_t sk_atomic_conditional_inc(i |
} |
} |
+static inline __attribute___((always_inline)) bool sk_atomic_cas(int32_t* addr, |
+ int32_t before, |
+ int32_t after) { |
+ // android_atomic_cas returns *addr == before as an int. |
+ return android_atomic_cas(before, after, addr) != 0; |
+} |
+ |
static inline __attribute__((always_inline)) void sk_membar_acquire__after_atomic_conditional_inc() { |
//HACK: Android is actually using full memory barriers. |
// Should this change, uncomment below. |