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

Unified Diff: src/incremental-marking.cc

Issue 8404030: Version 3.7.1 (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: Created 9 years, 2 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
« no previous file with comments | « src/incremental-marking.h ('k') | src/incremental-marking-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/incremental-marking.cc
===================================================================
--- src/incremental-marking.cc (revision 9808)
+++ src/incremental-marking.cc (working copy)
@@ -50,7 +50,8 @@
steps_took_since_last_gc_(0),
should_hurry_(false),
allocation_marking_factor_(0),
- allocated_(0) {
+ allocated_(0),
+ no_marking_scope_depth_(0) {
}
@@ -87,6 +88,16 @@
}
+void IncrementalMarking::RecordCodeTargetPatch(Code* host,
+ Address pc,
+ HeapObject* value) {
+ if (IsMarking()) {
+ RelocInfo rinfo(pc, RelocInfo::CODE_TARGET, 0, host);
+ RecordWriteIntoCode(host, &rinfo, value);
+ }
+}
+
+
void IncrementalMarking::RecordCodeTargetPatch(Address pc, HeapObject* value) {
if (IsMarking()) {
Code* host = heap_->isolate()->inner_pointer_to_code_cache()->
@@ -343,7 +354,8 @@
static const intptr_t kActivationThreshold = 0;
#endif
- return FLAG_incremental_marking &&
+ return !FLAG_expose_gc &&
+ FLAG_incremental_marking &&
!Serializer::enabled() &&
heap_->PromotedSpaceSize() > kActivationThreshold;
}
@@ -461,7 +473,9 @@
#ifdef DEBUG
// Marking bits are cleared by the sweeper.
- heap_->mark_compact_collector()->VerifyMarkbitsAreClean();
+ if (FLAG_verify_heap) {
+ heap_->mark_compact_collector()->VerifyMarkbitsAreClean();
+ }
#endif
heap_->CompletelyClearInstanceofCache();
@@ -692,6 +706,8 @@
if (allocated_ < kAllocatedThreshold) return;
+ if (state_ == MARKING && no_marking_scope_depth_ > 0) return;
+
intptr_t bytes_to_process = allocated_ * allocation_marking_factor_;
double start = 0;
@@ -739,8 +755,8 @@
}
MarkBit obj_mark_bit = Marking::MarkBitFrom(obj);
- ASSERT(Marking::IsGrey(obj_mark_bit) ||
- (obj->IsFiller() && Marking::IsWhite(obj_mark_bit)));
+ SLOW_ASSERT(Marking::IsGrey(obj_mark_bit) ||
+ (obj->IsFiller() && Marking::IsWhite(obj_mark_bit)));
Marking::MarkBlack(obj_mark_bit);
MemoryChunk::IncrementLiveBytes(obj->address(), size);
}
« no previous file with comments | « src/incremental-marking.h ('k') | src/incremental-marking-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698