OSDN Git Service

Merge "Call strong CAS from unsafe. Add more CAS versions."
authorHans Boehm <hboehm@google.com>
Sat, 12 Jul 2014 01:07:25 +0000 (01:07 +0000)
committerGerrit Code Review <noreply-gerritcodereview@google.com>
Fri, 11 Jul 2014 23:26:34 +0000 (23:26 +0000)
1  2 
runtime/mirror/object-inl.h
runtime/mirror/object.h

Simple merge
@@@ -265,12 -255,24 +266,24 @@@ class MANAGED LOCKABLE Object 
  
    template<bool kTransactionActive, bool kCheckTransaction = true,
        VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags>
 -  bool CasFieldWeakSequentiallyConsistent32(MemberOffset field_offset, int32_t old_value,
 -                                            int32_t new_value) ALWAYS_INLINE
 +  ALWAYS_INLINE bool CasFieldWeakSequentiallyConsistent32(MemberOffset field_offset,
 +                                                          int32_t old_value, int32_t new_value)
        SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
  
+   template<bool kTransactionActive, bool kCheckTransaction = true,
+       VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags>
+   bool CasFieldWeakRelaxed32(MemberOffset field_offset, int32_t old_value,
+                              int32_t new_value) ALWAYS_INLINE
+       SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+   template<bool kTransactionActive, bool kCheckTransaction = true,
+       VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags>
+   bool CasFieldStrongSequentiallyConsistent32(MemberOffset field_offset, int32_t old_value,
+                                               int32_t new_value) ALWAYS_INLINE
+       SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
    template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags, bool kIsVolatile = false>
 -  int64_t GetField64(MemberOffset field_offset) ALWAYS_INLINE
 +  ALWAYS_INLINE int64_t GetField64(MemberOffset field_offset)
        SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
  
    template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags>