From 20f2c9b645aee8c771c0ce4ea626ea0b82b2734f Mon Sep 17 00:00:00 2001 From: "ulan@chromium.org" Date: Tue, 28 Feb 2012 18:26:04 +0000 Subject: [PATCH] Do not call memset() to initialize StubCache. Review URL: https://chromiumcodereview.appspot.com/9464054 Patch from Iliyan Malchev . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/isolate.cc | 3 +-- src/stub-cache.cc | 17 ++--------------- src/stub-cache.h | 2 +- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/isolate.cc b/src/isolate.cc index 128136faa0..93742bd7cd 100644 --- a/src/isolate.cc +++ b/src/isolate.cc @@ -1836,13 +1836,12 @@ bool Isolate::Init(Deserializer* des) { #ifdef ENABLE_DEBUGGER_SUPPORT debug_->SetUp(create_heap_objects); #endif - stub_cache_->Initialize(create_heap_objects); // If we are deserializing, read the state into the now-empty heap. if (des != NULL) { des->Deserialize(); - stub_cache_->Initialize(true); } + stub_cache_->Initialize(); // Finish initialization of ThreadLocal after deserialization is done. clear_pending_exception(); diff --git a/src/stub-cache.cc b/src/stub-cache.cc index 4bbfe17687..650422c14c 100644 --- a/src/stub-cache.cc +++ b/src/stub-cache.cc @@ -45,26 +45,13 @@ namespace internal { StubCache::StubCache(Isolate* isolate) : isolate_(isolate) { 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(kSecondaryTableSize)); - if (create_heap_objects) { - 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; - } - } + Clear(); } diff --git a/src/stub-cache.h b/src/stub-cache.h index fdd8a12da6..5522bb242a 100644 --- a/src/stub-cache.h +++ b/src/stub-cache.h @@ -71,7 +71,7 @@ class StubCache { Code* value; }; - void Initialize(bool create_heap_objects); + void Initialize(); // Computes the right stub matching. Inserts the result in the