Chromium Code Reviews| Index: src/profile-generator.cc |
| diff --git a/src/profile-generator.cc b/src/profile-generator.cc |
| index 2bf1724715f066932617f13ceca013d714aa93d2..53934ca8f72758e878dfcd8e9849fda4e56243bb 100644 |
| --- a/src/profile-generator.cc |
| +++ b/src/profile-generator.cc |
| @@ -296,6 +296,7 @@ ProfileTree::ProfileTree() |
| "", |
| 0, |
| TokenEnumerator::kNoSecurityToken), |
| + next_node_id_(1), |
| root_(new ProfileNode(this, &root_entry_)) { |
| } |
| @@ -306,7 +307,7 @@ ProfileTree::~ProfileTree() { |
| } |
| -void ProfileTree::AddPathFromEnd(const Vector<CodeEntry*>& path) { |
| +ProfileNode* ProfileTree::AddPathFromEnd(const Vector<CodeEntry*>& path) { |
| ProfileNode* node = root_; |
| for (CodeEntry** entry = path.start() + path.length() - 1; |
| entry != path.start() - 1; |
| @@ -316,6 +317,7 @@ void ProfileTree::AddPathFromEnd(const Vector<CodeEntry*>& path) { |
| } |
| } |
| node->IncrementSelfTicks(); |
| + return node; |
| } |
| @@ -467,7 +469,8 @@ void ProfileTree::ShortPrint() { |
| void CpuProfile::AddPath(const Vector<CodeEntry*>& path) { |
| - top_down_.AddPathFromEnd(path); |
| + ProfileNode* top_frame_node = top_down_.AddPathFromEnd(path); |
| + samples_.Add(top_frame_node); |
|
loislo
2013/03/18 12:56:39
it seems that you collect the samples regardless o
yurys
2013/03/18 12:58:08
Done.
|
| } |
| @@ -483,7 +486,7 @@ void CpuProfile::SetActualSamplingRate(double actual_sampling_rate) { |
| CpuProfile* CpuProfile::FilteredClone(int security_token_id) { |
| ASSERT(security_token_id != TokenEnumerator::kNoSecurityToken); |
| - CpuProfile* clone = new CpuProfile(title_, uid_); |
| + CpuProfile* clone = new CpuProfile(title_, uid_, false); |
| clone->top_down_.FilteredClone(&top_down_, security_token_id); |
| return clone; |
| } |
| @@ -609,7 +612,8 @@ CpuProfilesCollection::~CpuProfilesCollection() { |
| } |
| -bool CpuProfilesCollection::StartProfiling(const char* title, unsigned uid) { |
| +bool CpuProfilesCollection::StartProfiling(const char* title, unsigned uid, |
| + bool record_samples) { |
| ASSERT(uid > 0); |
| current_profiles_semaphore_->Wait(); |
| if (current_profiles_.length() >= kMaxSimultaneousProfiles) { |
| @@ -623,17 +627,12 @@ bool CpuProfilesCollection::StartProfiling(const char* title, unsigned uid) { |
| return false; |
| } |
| } |
| - current_profiles_.Add(new CpuProfile(title, uid)); |
| + current_profiles_.Add(new CpuProfile(title, uid, record_samples)); |
| current_profiles_semaphore_->Signal(); |
| return true; |
| } |
| -bool CpuProfilesCollection::StartProfiling(String* title, unsigned uid) { |
| - return StartProfiling(GetName(title), uid); |
| -} |
| - |
| - |
| CpuProfile* CpuProfilesCollection::StopProfiling(int security_token_id, |
| const char* title, |
| double actual_sampling_rate) { |