Commit 20f2c9b6 authored by ulan@chromium.org's avatar ulan@chromium.org

Do not call memset() to initialize StubCache.

Review URL: https://chromiumcodereview.appspot.com/9464054
Patch from Iliyan Malchev <malchev@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent f9cdb0e1
...@@ -1836,13 +1836,12 @@ bool Isolate::Init(Deserializer* des) { ...@@ -1836,13 +1836,12 @@ bool Isolate::Init(Deserializer* des) {
#ifdef ENABLE_DEBUGGER_SUPPORT #ifdef ENABLE_DEBUGGER_SUPPORT
debug_->SetUp(create_heap_objects); debug_->SetUp(create_heap_objects);
#endif #endif
stub_cache_->Initialize(create_heap_objects);
// If we are deserializing, read the state into the now-empty heap. // If we are deserializing, read the state into the now-empty heap.
if (des != NULL) { if (des != NULL) {
des->Deserialize(); des->Deserialize();
stub_cache_->Initialize(true);
} }
stub_cache_->Initialize();
// Finish initialization of ThreadLocal after deserialization is done. // Finish initialization of ThreadLocal after deserialization is done.
clear_pending_exception(); clear_pending_exception();
......
...@@ -45,26 +45,13 @@ namespace internal { ...@@ -45,26 +45,13 @@ namespace internal {
StubCache::StubCache(Isolate* isolate) : isolate_(isolate) { StubCache::StubCache(Isolate* isolate) : isolate_(isolate) {
ASSERT(isolate == Isolate::Current()); ASSERT(isolate == Isolate::Current());
memset(primary_, 0, sizeof(primary_[0]) * StubCache::kPrimaryTableSize);
memset(secondary_, 0, sizeof(secondary_[0]) * StubCache::kSecondaryTableSize);
} }
void StubCache::Initialize(bool create_heap_objects) { void StubCache::Initialize() {
ASSERT(IsPowerOf2(kPrimaryTableSize)); ASSERT(IsPowerOf2(kPrimaryTableSize));
ASSERT(IsPowerOf2(kSecondaryTableSize)); ASSERT(IsPowerOf2(kSecondaryTableSize));
if (create_heap_objects) { Clear();
HandleScope scope;
Code* empty = isolate_->builtins()->builtin(Builtins::kIllegal);
for (int i = 0; i < kPrimaryTableSize; i++) {
primary_[i].key = heap()->empty_string();
primary_[i].value = empty;
}
for (int j = 0; j < kSecondaryTableSize; j++) {
secondary_[j].key = heap()->empty_string();
secondary_[j].value = empty;
}
}
} }
......
...@@ -71,7 +71,7 @@ class StubCache { ...@@ -71,7 +71,7 @@ class StubCache {
Code* value; Code* value;
}; };
void Initialize(bool create_heap_objects); void Initialize();
// Computes the right stub matching. Inserts the result in the // Computes the right stub matching. Inserts the result in the
......
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