Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 5059 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5070 | 5070 |
| 5071 const CpuProfileNode* CpuProfileNode::GetChild(int index) const { | 5071 const CpuProfileNode* CpuProfileNode::GetChild(int index) const { |
| 5072 i::Isolate* isolate = i::Isolate::Current(); | 5072 i::Isolate* isolate = i::Isolate::Current(); |
| 5073 IsDeadCheck(isolate, "v8::CpuProfileNode::GetChild"); | 5073 IsDeadCheck(isolate, "v8::CpuProfileNode::GetChild"); |
| 5074 const i::ProfileNode* child = | 5074 const i::ProfileNode* child = |
| 5075 reinterpret_cast<const i::ProfileNode*>(this)->children()->at(index); | 5075 reinterpret_cast<const i::ProfileNode*>(this)->children()->at(index); |
| 5076 return reinterpret_cast<const CpuProfileNode*>(child); | 5076 return reinterpret_cast<const CpuProfileNode*>(child); |
| 5077 } | 5077 } |
| 5078 | 5078 |
| 5079 | 5079 |
| 5080 void CpuProfile::Delete() const { | |
| 5081 i::Isolate* isolate = i::Isolate::Current(); | |
| 5082 IsDeadCheck(isolate, "v8::CpuProfile::Delete"); | |
| 5083 i::CpuProfiler::DeleteProfile( | |
| 5084 const_cast<i::CpuProfile*>( | |
|
Vitaly Repeshko
2011/03/22 14:30:36
Dropping "const" will allow to avoid this const_ca
mnaganov (inactive)
2011/03/22 16:03:09
Done.
| |
| 5085 reinterpret_cast<const i::CpuProfile*>(this))); | |
| 5086 if (i::CpuProfiler::GetProfilesCount() == 0 && | |
| 5087 !i::CpuProfiler::HasDetachedProfiles()) { | |
| 5088 // If this was the last profile, clean up all accessory data as well. | |
| 5089 i::CpuProfiler::DeleteAllProfiles(); | |
| 5090 } | |
| 5091 } | |
| 5092 | |
| 5093 | |
| 5080 unsigned CpuProfile::GetUid() const { | 5094 unsigned CpuProfile::GetUid() const { |
| 5081 i::Isolate* isolate = i::Isolate::Current(); | 5095 i::Isolate* isolate = i::Isolate::Current(); |
| 5082 IsDeadCheck(isolate, "v8::CpuProfile::GetUid"); | 5096 IsDeadCheck(isolate, "v8::CpuProfile::GetUid"); |
| 5083 return reinterpret_cast<const i::CpuProfile*>(this)->uid(); | 5097 return reinterpret_cast<const i::CpuProfile*>(this)->uid(); |
| 5084 } | 5098 } |
| 5085 | 5099 |
| 5086 | 5100 |
| 5087 Handle<String> CpuProfile::GetTitle() const { | 5101 Handle<String> CpuProfile::GetTitle() const { |
| 5088 i::Isolate* isolate = i::Isolate::Current(); | 5102 i::Isolate* isolate = i::Isolate::Current(); |
| 5089 IsDeadCheck(isolate, "v8::CpuProfile::GetTitle"); | 5103 IsDeadCheck(isolate, "v8::CpuProfile::GetTitle"); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5149 Handle<Value> security_token) { | 5163 Handle<Value> security_token) { |
| 5150 i::Isolate* isolate = i::Isolate::Current(); | 5164 i::Isolate* isolate = i::Isolate::Current(); |
| 5151 IsDeadCheck(isolate, "v8::CpuProfiler::StopProfiling"); | 5165 IsDeadCheck(isolate, "v8::CpuProfiler::StopProfiling"); |
| 5152 return reinterpret_cast<const CpuProfile*>( | 5166 return reinterpret_cast<const CpuProfile*>( |
| 5153 i::CpuProfiler::StopProfiling( | 5167 i::CpuProfiler::StopProfiling( |
| 5154 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), | 5168 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), |
| 5155 *Utils::OpenHandle(*title))); | 5169 *Utils::OpenHandle(*title))); |
| 5156 } | 5170 } |
| 5157 | 5171 |
| 5158 | 5172 |
| 5173 void CpuProfiler::DeleteAllProfiles() { | |
| 5174 i::Isolate* isolate = i::Isolate::Current(); | |
| 5175 IsDeadCheck(isolate, "v8::CpuProfiler::DeleteAllProfiles"); | |
| 5176 i::CpuProfiler::DeleteAllProfiles(); | |
| 5177 } | |
| 5178 | |
| 5179 | |
| 5159 static i::HeapGraphEdge* ToInternal(const HeapGraphEdge* edge) { | 5180 static i::HeapGraphEdge* ToInternal(const HeapGraphEdge* edge) { |
| 5160 return const_cast<i::HeapGraphEdge*>( | 5181 return const_cast<i::HeapGraphEdge*>( |
| 5161 reinterpret_cast<const i::HeapGraphEdge*>(edge)); | 5182 reinterpret_cast<const i::HeapGraphEdge*>(edge)); |
| 5162 } | 5183 } |
| 5163 | 5184 |
| 5164 HeapGraphEdge::Type HeapGraphEdge::GetType() const { | 5185 HeapGraphEdge::Type HeapGraphEdge::GetType() const { |
| 5165 i::Isolate* isolate = i::Isolate::Current(); | 5186 i::Isolate* isolate = i::Isolate::Current(); |
| 5166 IsDeadCheck(isolate, "v8::HeapGraphEdge::GetType"); | 5187 IsDeadCheck(isolate, "v8::HeapGraphEdge::GetType"); |
| 5167 return static_cast<HeapGraphEdge::Type>(ToInternal(this)->type()); | 5188 return static_cast<HeapGraphEdge::Type>(ToInternal(this)->type()); |
| 5168 } | 5189 } |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5355 return reinterpret_cast<const HeapGraphNode*>(diff->deletions_root()); | 5376 return reinterpret_cast<const HeapGraphNode*>(diff->deletions_root()); |
| 5356 } | 5377 } |
| 5357 | 5378 |
| 5358 | 5379 |
| 5359 static i::HeapSnapshot* ToInternal(const HeapSnapshot* snapshot) { | 5380 static i::HeapSnapshot* ToInternal(const HeapSnapshot* snapshot) { |
| 5360 return const_cast<i::HeapSnapshot*>( | 5381 return const_cast<i::HeapSnapshot*>( |
| 5361 reinterpret_cast<const i::HeapSnapshot*>(snapshot)); | 5382 reinterpret_cast<const i::HeapSnapshot*>(snapshot)); |
| 5362 } | 5383 } |
| 5363 | 5384 |
| 5364 | 5385 |
| 5386 void HeapSnapshot::Delete() const { | |
| 5387 i::Isolate* isolate = i::Isolate::Current(); | |
| 5388 IsDeadCheck(isolate, "v8::HeapSnapshot::Delete"); | |
| 5389 if (i::HeapProfiler::GetSnapshotsCount() > 1) { | |
| 5390 ToInternal(this)->Delete(); | |
| 5391 } else { | |
| 5392 // If this is the last snapshot, clean up all accessory data as well. | |
| 5393 i::HeapProfiler::DeleteAllSnapshots(); | |
| 5394 } | |
| 5395 } | |
| 5396 | |
| 5397 | |
| 5365 HeapSnapshot::Type HeapSnapshot::GetType() const { | 5398 HeapSnapshot::Type HeapSnapshot::GetType() const { |
| 5366 i::Isolate* isolate = i::Isolate::Current(); | 5399 i::Isolate* isolate = i::Isolate::Current(); |
| 5367 IsDeadCheck(isolate, "v8::HeapSnapshot::GetType"); | 5400 IsDeadCheck(isolate, "v8::HeapSnapshot::GetType"); |
| 5368 return static_cast<HeapSnapshot::Type>(ToInternal(this)->type()); | 5401 return static_cast<HeapSnapshot::Type>(ToInternal(this)->type()); |
| 5369 } | 5402 } |
| 5370 | 5403 |
| 5371 | 5404 |
| 5372 unsigned HeapSnapshot::GetUid() const { | 5405 unsigned HeapSnapshot::GetUid() const { |
| 5373 i::Isolate* isolate = i::Isolate::Current(); | 5406 i::Isolate* isolate = i::Isolate::Current(); |
| 5374 IsDeadCheck(isolate, "v8::HeapSnapshot::GetUid"); | 5407 IsDeadCheck(isolate, "v8::HeapSnapshot::GetUid"); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5464 break; | 5497 break; |
| 5465 default: | 5498 default: |
| 5466 UNREACHABLE(); | 5499 UNREACHABLE(); |
| 5467 } | 5500 } |
| 5468 return reinterpret_cast<const HeapSnapshot*>( | 5501 return reinterpret_cast<const HeapSnapshot*>( |
| 5469 i::HeapProfiler::TakeSnapshot( | 5502 i::HeapProfiler::TakeSnapshot( |
| 5470 *Utils::OpenHandle(*title), internal_type, control)); | 5503 *Utils::OpenHandle(*title), internal_type, control)); |
| 5471 } | 5504 } |
| 5472 | 5505 |
| 5473 | 5506 |
| 5507 void HeapProfiler::DeleteAllSnapshots() { | |
| 5508 i::Isolate* isolate = i::Isolate::Current(); | |
| 5509 IsDeadCheck(isolate, "v8::HeapProfiler::DeleteAllSnapshots"); | |
| 5510 i::HeapProfiler::DeleteAllSnapshots(); | |
| 5511 } | |
| 5512 | |
| 5513 | |
| 5474 void HeapProfiler::DefineWrapperClass(uint16_t class_id, | 5514 void HeapProfiler::DefineWrapperClass(uint16_t class_id, |
| 5475 WrapperInfoCallback callback) { | 5515 WrapperInfoCallback callback) { |
| 5476 i::Isolate::Current()->heap_profiler()->DefineWrapperClass(class_id, | 5516 i::Isolate::Current()->heap_profiler()->DefineWrapperClass(class_id, |
| 5477 callback); | 5517 callback); |
| 5478 } | 5518 } |
| 5479 | 5519 |
| 5480 #endif // ENABLE_LOGGING_AND_PROFILING | 5520 #endif // ENABLE_LOGGING_AND_PROFILING |
| 5481 | 5521 |
| 5482 | 5522 |
| 5483 v8::Testing::StressType internal::Testing::stress_type_ = | 5523 v8::Testing::StressType internal::Testing::stress_type_ = |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5608 | 5648 |
| 5609 | 5649 |
| 5610 char* HandleScopeImplementer::Iterate(ObjectVisitor* v, char* storage) { | 5650 char* HandleScopeImplementer::Iterate(ObjectVisitor* v, char* storage) { |
| 5611 HandleScopeImplementer* thread_local = | 5651 HandleScopeImplementer* thread_local = |
| 5612 reinterpret_cast<HandleScopeImplementer*>(storage); | 5652 reinterpret_cast<HandleScopeImplementer*>(storage); |
| 5613 thread_local->IterateThis(v); | 5653 thread_local->IterateThis(v); |
| 5614 return storage + ArchiveSpacePerThread(); | 5654 return storage + ArchiveSpacePerThread(); |
| 5615 } | 5655 } |
| 5616 | 5656 |
| 5617 } } // namespace v8::internal | 5657 } } // namespace v8::internal |
| OLD | NEW |