diff options
author | Myles Borins <mylesborins@google.com> | 2017-08-01 11:36:44 -0500 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2017-08-01 15:23:15 -0500 |
commit | 0a66b223e149a841669bfad5598e4254589730cb (patch) | |
tree | 5ec050f7f78aafbf5b1e0e50d639fb843141e162 /deps/v8/src/profiler | |
parent | 1782b3836ba58ef0da6b687f2bb970c0bd8199ad (diff) | |
download | android-node-v8-0a66b223e149a841669bfad5598e4254589730cb.tar.gz android-node-v8-0a66b223e149a841669bfad5598e4254589730cb.tar.bz2 android-node-v8-0a66b223e149a841669bfad5598e4254589730cb.zip |
deps: update V8 to 6.0.286.52
PR-URL: https://github.com/nodejs/node/pull/14004
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/src/profiler')
-rw-r--r-- | deps/v8/src/profiler/heap-snapshot-generator.cc | 49 | ||||
-rw-r--r-- | deps/v8/src/profiler/heap-snapshot-generator.h | 2 |
2 files changed, 20 insertions, 31 deletions
diff --git a/deps/v8/src/profiler/heap-snapshot-generator.cc b/deps/v8/src/profiler/heap-snapshot-generator.cc index b360fccdfe..cdd80ffc44 100644 --- a/deps/v8/src/profiler/heap-snapshot-generator.cc +++ b/deps/v8/src/profiler/heap-snapshot-generator.cc @@ -18,6 +18,7 @@ #include "src/profiler/heap-snapshot-generator-inl.h" #include "src/prototype.h" #include "src/transitions.h" +#include "src/visitors.h" namespace v8 { namespace internal { @@ -269,6 +270,7 @@ HeapEntry* HeapSnapshot::AddEntry(HeapEntry::Type type, size_t size, unsigned trace_node_id) { HeapEntry entry(this, type, name, id, size, trace_node_id); + DCHECK(sorted_entries_.is_empty()); entries_.Add(entry); return &entries_.last(); } @@ -290,26 +292,15 @@ void HeapSnapshot::FillChildren() { } } - -class FindEntryById { - public: - explicit FindEntryById(SnapshotObjectId id) : id_(id) { } - int operator()(HeapEntry* const* entry) { - if ((*entry)->id() == id_) return 0; - return (*entry)->id() < id_ ? -1 : 1; - } - private: - SnapshotObjectId id_; -}; - - HeapEntry* HeapSnapshot::GetEntryById(SnapshotObjectId id) { List<HeapEntry*>* entries_by_id = GetSortedEntriesList(); - // Perform a binary search by id. - int index = SortedListBSearch(*entries_by_id, FindEntryById(id)); - if (index == -1) - return NULL; - return entries_by_id->at(index); + + auto it = std::lower_bound( + entries_by_id->begin(), entries_by_id->end(), id, + [](HeapEntry* first, SnapshotObjectId val) { return first->id() < val; }); + + if (it == entries_by_id->end() || (*it)->id() != id) return NULL; + return *it; } @@ -972,12 +963,12 @@ class IndexedReferencesExtractor : public ObjectVisitor { parent_end_(HeapObject::RawField(parent_obj_, parent_obj_->Size())), parent_(parent), next_index_(0) {} - void VisitCodeEntry(Address entry_address) override { - Code* code = Code::cast(Code::GetObjectFromEntryAddress(entry_address)); - generator_->SetInternalReference(parent_obj_, parent_, "code", code); - generator_->TagCodeObject(code); + void VisitCodeEntry(JSFunction* host, Address entry_address) override { + Code* code = Code::cast(Code::GetObjectFromEntryAddress(entry_address)); + generator_->SetInternalReference(parent_obj_, parent_, "code", code); + generator_->TagCodeObject(code); } - void VisitPointers(Object** start, Object** end) override { + void VisitPointers(HeapObject* host, Object** start, Object** end) override { for (Object** p = start; p < end; p++) { int index = static_cast<int>(p - HeapObject::RawField(parent_obj_, 0)); ++next_index_; @@ -1364,9 +1355,6 @@ void V8HeapExplorer::ExtractSharedFunctionInfoReferences( SetInternalReference(obj, entry, "function_identifier", shared->function_identifier(), SharedFunctionInfo::kFunctionIdentifierOffset); - SetInternalReference(obj, entry, - "optimized_code_map", shared->optimized_code_map(), - SharedFunctionInfo::kOptimizedCodeMapOffset); SetInternalReference(obj, entry, "feedback_metadata", shared->feedback_metadata(), SharedFunctionInfo::kFeedbackMetadataOffset); @@ -1685,8 +1673,7 @@ HeapEntry* V8HeapExplorer::GetEntry(Object* obj) { return filler_->FindOrAddEntry(obj, this); } - -class RootsReferencesExtractor : public ObjectVisitor { +class RootsReferencesExtractor : public RootVisitor { private: struct IndexTag { IndexTag(int index, VisitorSynchronization::SyncTag tag) @@ -1702,7 +1689,7 @@ class RootsReferencesExtractor : public ObjectVisitor { heap_(heap) { } - void VisitPointers(Object** start, Object** end) override { + void VisitRootPointers(Root root, Object** start, Object** end) override { if (collecting_all_references_) { for (Object** p = start; p < end; p++) all_references_.Add(*p); } else { @@ -2147,9 +2134,9 @@ void V8HeapExplorer::TagFixedArraySubType(const FixedArray* array, array_types_[array] = type; } -class GlobalObjectsEnumerator : public ObjectVisitor { +class GlobalObjectsEnumerator : public RootVisitor { public: - void VisitPointers(Object** start, Object** end) override { + void VisitRootPointers(Root root, Object** start, Object** end) override { for (Object** p = start; p < end; p++) { if ((*p)->IsNativeContext()) { Context* context = Context::cast(*p); diff --git a/deps/v8/src/profiler/heap-snapshot-generator.h b/deps/v8/src/profiler/heap-snapshot-generator.h index 022f238cc5..84a23e4c0d 100644 --- a/deps/v8/src/profiler/heap-snapshot-generator.h +++ b/deps/v8/src/profiler/heap-snapshot-generator.h @@ -12,6 +12,8 @@ #include "src/base/platform/time.h" #include "src/objects.h" #include "src/profiler/strings-storage.h" +#include "src/string-hasher.h" +#include "src/visitors.h" namespace v8 { namespace internal { |