From d8548845902cbc30bdfa6c53aec45a08d428f653 Mon Sep 17 00:00:00 2001 From: "iposva@google.com" Date: Mon, 1 Sep 2014 20:28:43 +0000 Subject: [PATCH] - Revert parts of r39731 as they cause conflicting results. Review URL: https://codereview.chromium.org//534433002 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39734 260f80e4-7a28-3924-810f-c04153c831b5 --- runtime/vm/raw_object.h | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h index af00d9cd76f..ea360544108 100644 --- a/runtime/vm/raw_object.h +++ b/runtime/vm/raw_object.h @@ -330,13 +330,7 @@ class RawObject { void ClearMarkBit() { ASSERT(IsMarked()); uword tags = ptr()->tags_; - uword old_tags; - do { - old_tags = tags; - uword new_tags = MarkBit::update(false, old_tags); - tags = AtomicOperations::CompareAndSwapWord( - &ptr()->tags_, old_tags, new_tags); - } while (tags != old_tags); + ptr()->tags_ = MarkBit::update(false, tags); } // Support for GC watched bit. @@ -389,23 +383,11 @@ class RawObject { void SetRememberedBit() { ASSERT(!IsRemembered()); uword tags = ptr()->tags_; - uword old_tags; - do { - old_tags = tags; - uword new_tags = RememberedBit::update(true, old_tags); - tags = AtomicOperations::CompareAndSwapWord( - &ptr()->tags_, old_tags, new_tags); - } while (tags != old_tags); + ptr()->tags_ = RememberedBit::update(true, tags); } void ClearRememberedBit() { uword tags = ptr()->tags_; - uword old_tags; - do { - old_tags = tags; - uword new_tags = RememberedBit::update(false, old_tags); - tags = AtomicOperations::CompareAndSwapWord( - &ptr()->tags_, old_tags, new_tags); - } while (tags != old_tags); + ptr()->tags_ = RememberedBit::update(false, tags); } bool IsDartInstance() {