diff options
Diffstat (limited to 'deps/v8/src/profiler/profiler-listener.cc')
-rw-r--r-- | deps/v8/src/profiler/profiler-listener.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/deps/v8/src/profiler/profiler-listener.cc b/deps/v8/src/profiler/profiler-listener.cc index 640f967e3d..4de524aeef 100644 --- a/deps/v8/src/profiler/profiler-listener.cc +++ b/deps/v8/src/profiler/profiler-listener.cc @@ -84,9 +84,9 @@ void ProfilerListener::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION); CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_; rec->start = abstract_code->address(); - Script* script = Script::cast(shared->script()); JITLineInfoTable* line_table = NULL; - if (script) { + if (shared->script()->IsScript()) { + Script* script = Script::cast(shared->script()); line_table = new JITLineInfoTable(); int offset = abstract_code->IsCode() ? Code::kHeaderSize : BytecodeArray::kHeaderSize; @@ -269,8 +269,9 @@ void ProfilerListener::RecordDeoptInlinedFrames(CodeEntry* entry, std::vector<CpuProfileDeoptFrame> inlined_frames; for (SourcePositionInfo& pos_info : last_position.InliningStack(code)) { DCHECK(pos_info.position.ScriptOffset() != kNoSourcePosition); - size_t offset = static_cast<size_t>(pos_info.position.ScriptOffset()); + if (!pos_info.function->script()->IsScript()) continue; int script_id = Script::cast(pos_info.function->script())->id(); + size_t offset = static_cast<size_t>(pos_info.position.ScriptOffset()); inlined_frames.push_back(CpuProfileDeoptFrame({script_id, offset})); } if (!inlined_frames.empty() && |