Atomic op cleanup.
Replaced VM-local macros for barrier and CAS calls with the actual
versions provided by cutils.
ATOMIC_CMP_SWAP(addr,old,new) --> android_atomic_release_cas(old,new,addr)
MEM_BARRIER --> ANDROID_MEMBAR_FULL
Renamed android_quasiatomic* to dvmQuasiAtomic*.
Didn't change how anything works, just the names.
Change-Id: I8c68f28e1f7c9cb832183e0918d097dfe6a2cac8
diff --git a/vm/oo/Array.c b/vm/oo/Array.c
index 94911b5..6e706ef 100644
--- a/vm/oo/Array.c
+++ b/vm/oo/Array.c
@@ -598,8 +598,8 @@
ClassObject* primClass = createPrimitiveClass(idx);
dvmReleaseTrackedAlloc((Object*) primClass, NULL);
- if (!ATOMIC_CMP_SWAP((int*) &gDvm.primitiveClass[idx],
- 0, (int) primClass))
+ if (android_atomic_release_cas(0, (int) primClass,
+ (int*) &gDvm.primitiveClass[idx]) != 0)
{
/*
* Looks like somebody beat us to it. Free up the one we