Index: src/serialize.cc |
diff --git a/src/serialize.cc b/src/serialize.cc |
index 6c5a620a4181def5ac64f7daff5bb89e78b5f87b..ad56d3613289a4c673c9f2b1b2c0fa4e7a206129 100644 |
--- a/src/serialize.cc |
+++ b/src/serialize.cc |
@@ -665,141 +665,6 @@ bool Serializer::serialization_enabled_ = false; |
bool Serializer::too_late_to_enable_now_ = false; |
-class CodeAddressMap: public CodeEventLogger { |
- public: |
- explicit CodeAddressMap(Isolate* isolate) |
- : isolate_(isolate) { |
- isolate->logger()->addCodeEventListener(this); |
- } |
- |
- virtual ~CodeAddressMap() { |
- isolate_->logger()->removeCodeEventListener(this); |
- } |
- |
- virtual void CodeMoveEvent(Address from, Address to) { |
- address_to_name_map_.Move(from, to); |
- } |
- |
- virtual void CodeDeleteEvent(Address from) { |
- address_to_name_map_.Remove(from); |
- } |
- |
- const char* Lookup(Address address) { |
- return address_to_name_map_.Lookup(address); |
- } |
- |
- private: |
- class NameMap { |
- public: |
- NameMap() : impl_(&PointerEquals) {} |
- |
- ~NameMap() { |
- for (HashMap::Entry* p = impl_.Start(); p != NULL; p = impl_.Next(p)) { |
- DeleteArray(static_cast<const char*>(p->value)); |
- } |
- } |
- |
- void Insert(Address code_address, const char* name, int name_size) { |
- HashMap::Entry* entry = FindOrCreateEntry(code_address); |
- if (entry->value == NULL) { |
- entry->value = CopyName(name, name_size); |
- } |
- } |
- |
- const char* Lookup(Address code_address) { |
- HashMap::Entry* entry = FindEntry(code_address); |
- return (entry != NULL) ? static_cast<const char*>(entry->value) : NULL; |
- } |
- |
- void Remove(Address code_address) { |
- HashMap::Entry* entry = FindEntry(code_address); |
- if (entry != NULL) { |
- DeleteArray(static_cast<char*>(entry->value)); |
- RemoveEntry(entry); |
- } |
- } |
- |
- void Move(Address from, Address to) { |
- if (from == to) return; |
- HashMap::Entry* from_entry = FindEntry(from); |
- ASSERT(from_entry != NULL); |
- void* value = from_entry->value; |
- RemoveEntry(from_entry); |
- HashMap::Entry* to_entry = FindOrCreateEntry(to); |
- ASSERT(to_entry->value == NULL); |
- to_entry->value = value; |
- } |
- |
- private: |
- static bool PointerEquals(void* lhs, void* rhs) { |
- return lhs == rhs; |
- } |
- |
- static char* CopyName(const char* name, int name_size) { |
- char* result = NewArray<char>(name_size + 1); |
- for (int i = 0; i < name_size; ++i) { |
- char c = name[i]; |
- if (c == '\0') c = ' '; |
- result[i] = c; |
- } |
- result[name_size] = '\0'; |
- return result; |
- } |
- |
- HashMap::Entry* FindOrCreateEntry(Address code_address) { |
- return impl_.Lookup(code_address, ComputePointerHash(code_address), true); |
- } |
- |
- HashMap::Entry* FindEntry(Address code_address) { |
- return impl_.Lookup(code_address, |
- ComputePointerHash(code_address), |
- false); |
- } |
- |
- void RemoveEntry(HashMap::Entry* entry) { |
- impl_.Remove(entry->key, entry->hash); |
- } |
- |
- HashMap impl_; |
- |
- DISALLOW_COPY_AND_ASSIGN(NameMap); |
- }; |
- |
- virtual void LogRecordedBuffer(Code* code, |
- SharedFunctionInfo*, |
- const char* name, |
- int length) { |
- address_to_name_map_.Insert(code->address(), name, length); |
- } |
- |
- NameMap address_to_name_map_; |
- Isolate* isolate_; |
-}; |
- |
- |
-CodeAddressMap* Serializer::code_address_map_ = NULL; |
- |
- |
-void Serializer::Enable() { |
- if (!serialization_enabled_) { |
- ASSERT(!too_late_to_enable_now_); |
- } |
- if (serialization_enabled_) return; |
- serialization_enabled_ = true; |
- i::Isolate* isolate = Isolate::Current(); |
- isolate->InitializeLoggingAndCounters(); |
- code_address_map_ = new CodeAddressMap(isolate); |
-} |
- |
- |
-void Serializer::Disable() { |
- if (!serialization_enabled_) return; |
- serialization_enabled_ = false; |
- delete code_address_map_; |
- code_address_map_ = NULL; |
-} |
- |
- |
Deserializer::Deserializer(SnapshotByteSource* source) |
: isolate_(NULL), |
source_(source), |
@@ -1593,11 +1458,7 @@ void Serializer::ObjectSerializer::Serialize() { |
"ObjectSerialization"); |
sink_->PutInt(size >> kObjectAlignmentBits, "Size in words"); |
- ASSERT(code_address_map_); |
- const char* code_name = code_address_map_->Lookup(object_->address()); |
- LOG(serializer_->isolate_, |
- CodeNameEvent(object_->address(), sink_->Position(), code_name)); |
- LOG(serializer_->isolate_, |
+ LOG(i::Isolate::Current(), |
SnapshotPositionEvent(object_->address(), sink_->Position())); |
// Mark this object as already serialized. |