- 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
This commit is contained in:
+3
-21
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user