Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(411)

Unified Diff: src/incremental-marking-inl.h

Issue 6970004: Introduce lazy sweeping. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/incremental-marking-inl.h
diff --git a/src/incremental-marking-inl.h b/src/incremental-marking-inl.h
index 33ffce335e7b0895a0ccc77b279d997c341041c9..37b0248928088ded2bdfe074edfea0ac94398293 100644
--- a/src/incremental-marking-inl.h
+++ b/src/incremental-marking-inl.h
@@ -35,7 +35,7 @@ namespace internal {
void IncrementalMarking::RecordWrite(HeapObject* obj, Object* value) {
- if (!IsStopped() && value->IsHeapObject()) {
+ if (IsMarking() && value->IsHeapObject()) {
MarkBit value_bit = heap_->marking()->MarkBitFrom(HeapObject::cast(value));
if (IsWhite(value_bit)) {
MarkBit obj_bit = heap_->marking()->MarkBitFrom(obj);
@@ -49,7 +49,7 @@ void IncrementalMarking::RecordWrite(HeapObject* obj, Object* value) {
void IncrementalMarking::RecordWriteOf(HeapObject* value) {
- if (state_ != STOPPED) {
+ if (IsMarking()) {
MarkBit value_bit = heap_->marking()->MarkBitFrom(value);
if (IsWhite(value_bit)) {
WhiteToGreyAndPush(value, value_bit);
@@ -60,7 +60,7 @@ void IncrementalMarking::RecordWriteOf(HeapObject* value) {
void IncrementalMarking::RecordWrites(HeapObject* obj) {
- if (!IsStopped()) {
+ if (IsMarking()) {
MarkBit obj_bit = heap_->marking()->MarkBitFrom(obj);
if (IsBlack(obj_bit)) {
BlackToGreyAndUnshift(obj, obj_bit);

Powered by Google App Engine
This is Rietveld 408576698