Commit 3afbf69f authored by antonm@chromium.org's avatar antonm@chromium.org

Relax verification of JSFunction result caches.

As invocation of a functin may trigger GC and hence clear all the caches,
it's hard to ensure previous invariants.

Current invariant is both a key and a value should be the holes or not holes.

Review URL: http://codereview.chromium.org/6309004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent dd242e3f
...@@ -674,13 +674,12 @@ void JSFunctionResultCache::JSFunctionResultCacheVerify() { ...@@ -674,13 +674,12 @@ void JSFunctionResultCache::JSFunctionResultCacheVerify() {
ASSERT_EQ(0, finger % kEntrySize); ASSERT_EQ(0, finger % kEntrySize);
if (FLAG_enable_slow_asserts) { if (FLAG_enable_slow_asserts) {
for (int i = kEntriesIndex; i < size; i++) { STATIC_ASSERT(2 == kEntrySize);
ASSERT(!get(i)->IsTheHole()); for (int i = kEntriesIndex; i < length(); i += kEntrySize) {
get(i)->Verify();
}
for (int i = size; i < length(); i++) {
ASSERT(get(i)->IsTheHole());
get(i)->Verify(); get(i)->Verify();
get(i + 1)->Verify();
// Key and value must be either both the holes, or not.
ASSERT(get(i)->IsTheHole() == get(i + 1)->IsTheHole());
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment