Add sanity check to CodeFlusher::AddCandidate.

R=hpayer@chromium.org
BUG=chromium:169209

Review URL: https://codereview.chromium.org/11887031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
mstarzinger@chromium.org 2013-01-15 10:00:48 +00:00
parent 2fcc7d7098
commit 90ec61152c
2 changed files with 16 additions and 0 deletions

View File

@ -933,6 +933,16 @@ void CodeFlusher::ProcessSharedFunctionInfoCandidates() {
}
bool CodeFlusher::ContainsCandidate(SharedFunctionInfo* shared_info) {
SharedFunctionInfo* candidate = shared_function_info_candidates_head_;
while (candidate != NULL) {
if (candidate == shared_info) return true;
candidate = GetNextCandidate(candidate);
}
return false;
}
void CodeFlusher::EvictCandidate(SharedFunctionInfo* shared_info) {
// The function is no longer a candidate, make sure it gets visited
// again so that previous flushing decisions are revisited.

View File

@ -423,6 +423,10 @@ class CodeFlusher {
if (GetNextCandidate(shared_info) == NULL) {
SetNextCandidate(shared_info, shared_function_info_candidates_head_);
shared_function_info_candidates_head_ = shared_info;
} else {
// TODO(mstarzinger): Active in release mode to flush out problems.
// Should be turned back into an ASSERT or removed completely.
CHECK(ContainsCandidate(shared_info));
}
}
@ -434,6 +438,8 @@ class CodeFlusher {
}
}
bool ContainsCandidate(SharedFunctionInfo* shared_info);
void EvictCandidate(SharedFunctionInfo* shared_info);
void EvictCandidate(JSFunction* function);