Changeset 34696 in webkit for trunk/JavaScriptCore/profiler/Profiler.cpp
- Timestamp:
- Jun 20, 2008, 12:36:10 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/profiler/Profiler.cpp
r34581 r34696 66 66 } 67 67 68 void Profiler::startProfiling(ExecState* exec, const UString& title )68 void Profiler::startProfiling(ExecState* exec, const UString& title, ProfilerClient* client) 69 69 { 70 70 ASSERT_ARG(exec, exec); … … 77 77 return; 78 78 s_sharedEnabledProfilerReference = this; 79 RefPtr<Profile> profile = Profile::create(title, globalExec, exec->lexicalGlobalObject()->pageGroupIdentifier() );79 RefPtr<Profile> profile = Profile::create(title, globalExec, exec->lexicalGlobalObject()->pageGroupIdentifier(), client); 80 80 m_currentProfiles.append(profile); 81 81 } 82 82 83 PassRefPtr<Profile>Profiler::stopProfiling(ExecState* exec, const UString& title)83 void Profiler::stopProfiling(ExecState* exec, const UString& title) 84 84 { 85 85 ExecState* globalExec = exec->lexicalGlobalObject()->globalExec(); 86 86 for (ptrdiff_t i = m_currentProfiles.size() - 1; i >= 0; --i) { 87 if (m_currentProfiles[i]->originatingGlobalExec() == globalExec && (title.isNull() || m_currentProfiles[i]->title() == title)) {87 if (m_currentProfiles[i]->originatingGlobalExec() == globalExec && (title.isNull() || m_currentProfiles[i]->title() == title)) 88 88 m_currentProfiles[i]->stopProfiling(); 89 } 90 } 89 91 90 PassRefPtr<Profile> prpProfile = m_currentProfiles[i].release(); 92 void Profiler::didFinishAllExecution(ExecState* exec) 93 { 94 ExecState* globalExec = exec->lexicalGlobalObject()->globalExec(); 95 for (ptrdiff_t i = m_currentProfiles.size() - 1; i >= 0; --i) { 96 if (m_currentProfiles[i]->originatingGlobalExec() == globalExec && m_currentProfiles[i]->didFinishAllExecution()) { 97 PassRefPtr<Profile> prpProfile = m_currentProfiles[i].release(); 91 98 m_currentProfiles.remove(i); 99 92 100 if (!m_currentProfiles.size()) 93 101 s_sharedEnabledProfilerReference = 0; 94 return prpProfile; 102 103 if (ProfilerClient* client = prpProfile->client()) 104 client->finishedProfiling(prpProfile); 95 105 } 96 106 } 97 98 return 0;99 107 } 100 108
Note:
See TracChangeset
for help on using the changeset viewer.