| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 7307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7318 const i::CpuProfile* profile = reinterpret_cast<const i::CpuProfile*>(this); | 7318 const i::CpuProfile* profile = reinterpret_cast<const i::CpuProfile*>(this); |
| 7319 return reinterpret_cast<const CpuProfileNode*>(profile->sample(index)); | 7319 return reinterpret_cast<const CpuProfileNode*>(profile->sample(index)); |
| 7320 } | 7320 } |
| 7321 | 7321 |
| 7322 | 7322 |
| 7323 int CpuProfile::GetSamplesCount() const { | 7323 int CpuProfile::GetSamplesCount() const { |
| 7324 return reinterpret_cast<const i::CpuProfile*>(this)->samples_count(); | 7324 return reinterpret_cast<const i::CpuProfile*>(this)->samples_count(); |
| 7325 } | 7325 } |
| 7326 | 7326 |
| 7327 | 7327 |
| 7328 int CpuProfiler::GetProfilesCount() { | |
| 7329 i::Isolate* isolate = i::Isolate::Current(); | |
| 7330 IsDeadCheck(isolate, "v8::CpuProfiler::GetProfilesCount"); | |
| 7331 i::CpuProfiler* profiler = isolate->cpu_profiler(); | |
| 7332 ASSERT(profiler != NULL); | |
| 7333 return profiler->GetProfilesCount(); | |
| 7334 } | |
| 7335 | |
| 7336 | |
| 7337 int CpuProfiler::GetProfileCount() { | 7328 int CpuProfiler::GetProfileCount() { |
| 7338 return reinterpret_cast<i::CpuProfiler*>(this)->GetProfilesCount(); | 7329 return reinterpret_cast<i::CpuProfiler*>(this)->GetProfilesCount(); |
| 7339 } | 7330 } |
| 7340 | 7331 |
| 7341 | 7332 |
| 7342 const CpuProfile* CpuProfiler::GetProfile(int index, | |
| 7343 Handle<Value> security_token) { | |
| 7344 i::Isolate* isolate = i::Isolate::Current(); | |
| 7345 IsDeadCheck(isolate, "v8::CpuProfiler::GetProfile"); | |
| 7346 i::CpuProfiler* profiler = isolate->cpu_profiler(); | |
| 7347 ASSERT(profiler != NULL); | |
| 7348 return reinterpret_cast<const CpuProfile*>( | |
| 7349 profiler->GetProfile( | |
| 7350 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), | |
| 7351 index)); | |
| 7352 } | |
| 7353 | |
| 7354 | |
| 7355 const CpuProfile* CpuProfiler::GetCpuProfile(int index, | 7333 const CpuProfile* CpuProfiler::GetCpuProfile(int index, |
| 7356 Handle<Value> security_token) { | 7334 Handle<Value> security_token) { |
| 7357 return reinterpret_cast<const CpuProfile*>( | 7335 return reinterpret_cast<const CpuProfile*>( |
| 7358 reinterpret_cast<i::CpuProfiler*>(this)->GetProfile( | 7336 reinterpret_cast<i::CpuProfiler*>(this)->GetProfile( |
| 7359 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), | 7337 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), |
| 7360 index)); | 7338 index)); |
| 7361 } | 7339 } |
| 7362 | 7340 |
| 7363 | 7341 |
| 7364 const CpuProfile* CpuProfiler::GetCpuProfile(int index) { | 7342 const CpuProfile* CpuProfiler::GetCpuProfile(int index) { |
| 7365 return reinterpret_cast<const CpuProfile*>( | 7343 return reinterpret_cast<const CpuProfile*>( |
| 7366 reinterpret_cast<i::CpuProfiler*>(this)->GetProfile(NULL, index)); | 7344 reinterpret_cast<i::CpuProfiler*>(this)->GetProfile(NULL, index)); |
| 7367 } | 7345 } |
| 7368 | 7346 |
| 7369 | 7347 |
| 7370 const CpuProfile* CpuProfiler::FindProfile(unsigned uid, | |
| 7371 Handle<Value> security_token) { | |
| 7372 i::Isolate* isolate = i::Isolate::Current(); | |
| 7373 IsDeadCheck(isolate, "v8::CpuProfiler::FindProfile"); | |
| 7374 i::CpuProfiler* profiler = isolate->cpu_profiler(); | |
| 7375 ASSERT(profiler != NULL); | |
| 7376 return reinterpret_cast<const CpuProfile*>( | |
| 7377 profiler->FindProfile( | |
| 7378 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), | |
| 7379 uid)); | |
| 7380 } | |
| 7381 | |
| 7382 | |
| 7383 const CpuProfile* CpuProfiler::FindCpuProfile(unsigned uid, | 7348 const CpuProfile* CpuProfiler::FindCpuProfile(unsigned uid, |
| 7384 Handle<Value> security_token) { | 7349 Handle<Value> security_token) { |
| 7385 return reinterpret_cast<const CpuProfile*>( | 7350 return reinterpret_cast<const CpuProfile*>( |
| 7386 reinterpret_cast<i::CpuProfiler*>(this)->FindProfile( | 7351 reinterpret_cast<i::CpuProfiler*>(this)->FindProfile( |
| 7387 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), | 7352 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), |
| 7388 uid)); | 7353 uid)); |
| 7389 } | 7354 } |
| 7390 | 7355 |
| 7391 | 7356 |
| 7392 void CpuProfiler::StartProfiling(Handle<String> title, bool record_samples) { | |
| 7393 i::Isolate* isolate = i::Isolate::Current(); | |
| 7394 IsDeadCheck(isolate, "v8::CpuProfiler::StartProfiling"); | |
| 7395 i::CpuProfiler* profiler = isolate->cpu_profiler(); | |
| 7396 ASSERT(profiler != NULL); | |
| 7397 profiler->StartProfiling(*Utils::OpenHandle(*title), record_samples); | |
| 7398 } | |
| 7399 | |
| 7400 | |
| 7401 void CpuProfiler::StartCpuProfiling(Handle<String> title, bool record_samples) { | 7357 void CpuProfiler::StartCpuProfiling(Handle<String> title, bool record_samples) { |
| 7402 reinterpret_cast<i::CpuProfiler*>(this)->StartProfiling( | 7358 reinterpret_cast<i::CpuProfiler*>(this)->StartProfiling( |
| 7403 *Utils::OpenHandle(*title), record_samples); | 7359 *Utils::OpenHandle(*title), record_samples); |
| 7404 } | 7360 } |
| 7405 | 7361 |
| 7406 | 7362 |
| 7407 const CpuProfile* CpuProfiler::StopProfiling(Handle<String> title, | |
| 7408 Handle<Value> security_token) { | |
| 7409 i::Isolate* isolate = i::Isolate::Current(); | |
| 7410 IsDeadCheck(isolate, "v8::CpuProfiler::StopProfiling"); | |
| 7411 i::CpuProfiler* profiler = isolate->cpu_profiler(); | |
| 7412 ASSERT(profiler != NULL); | |
| 7413 return reinterpret_cast<const CpuProfile*>( | |
| 7414 profiler->StopProfiling( | |
| 7415 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), | |
| 7416 *Utils::OpenHandle(*title))); | |
| 7417 } | |
| 7418 | |
| 7419 | |
| 7420 const CpuProfile* CpuProfiler::StopCpuProfiling(Handle<String> title, | 7363 const CpuProfile* CpuProfiler::StopCpuProfiling(Handle<String> title, |
| 7421 Handle<Value> security_token) { | 7364 Handle<Value> security_token) { |
| 7422 return reinterpret_cast<const CpuProfile*>( | 7365 return reinterpret_cast<const CpuProfile*>( |
| 7423 reinterpret_cast<i::CpuProfiler*>(this)->StopProfiling( | 7366 reinterpret_cast<i::CpuProfiler*>(this)->StopProfiling( |
| 7424 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), | 7367 security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token), |
| 7425 *Utils::OpenHandle(*title))); | 7368 *Utils::OpenHandle(*title))); |
| 7426 } | 7369 } |
| 7427 | 7370 |
| 7428 | 7371 |
| 7429 const CpuProfile* CpuProfiler::StopCpuProfiling(Handle<String> title) { | 7372 const CpuProfile* CpuProfiler::StopCpuProfiling(Handle<String> title) { |
| 7430 return reinterpret_cast<const CpuProfile*>( | 7373 return reinterpret_cast<const CpuProfile*>( |
| 7431 reinterpret_cast<i::CpuProfiler*>(this)->StopProfiling( | 7374 reinterpret_cast<i::CpuProfiler*>(this)->StopProfiling( |
| 7432 NULL, | 7375 NULL, |
| 7433 *Utils::OpenHandle(*title))); | 7376 *Utils::OpenHandle(*title))); |
| 7434 } | 7377 } |
| 7435 | 7378 |
| 7436 | 7379 |
| 7437 void CpuProfiler::DeleteAllProfiles() { | |
| 7438 i::Isolate* isolate = i::Isolate::Current(); | |
| 7439 IsDeadCheck(isolate, "v8::CpuProfiler::DeleteAllProfiles"); | |
| 7440 i::CpuProfiler* profiler = isolate->cpu_profiler(); | |
| 7441 ASSERT(profiler != NULL); | |
| 7442 profiler->DeleteAllProfiles(); | |
| 7443 } | |
| 7444 | |
| 7445 | |
| 7446 void CpuProfiler::DeleteAllCpuProfiles() { | 7380 void CpuProfiler::DeleteAllCpuProfiles() { |
| 7447 reinterpret_cast<i::CpuProfiler*>(this)->DeleteAllProfiles(); | 7381 reinterpret_cast<i::CpuProfiler*>(this)->DeleteAllProfiles(); |
| 7448 } | 7382 } |
| 7449 | 7383 |
| 7450 | 7384 |
| 7451 static i::HeapGraphEdge* ToInternal(const HeapGraphEdge* edge) { | 7385 static i::HeapGraphEdge* ToInternal(const HeapGraphEdge* edge) { |
| 7452 return const_cast<i::HeapGraphEdge*>( | 7386 return const_cast<i::HeapGraphEdge*>( |
| 7453 reinterpret_cast<const i::HeapGraphEdge*>(edge)); | 7387 reinterpret_cast<const i::HeapGraphEdge*>(edge)); |
| 7454 } | 7388 } |
| 7455 | 7389 |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7569 IsDeadCheck(isolate, "v8::HeapSnapshot::Delete"); | 7503 IsDeadCheck(isolate, "v8::HeapSnapshot::Delete"); |
| 7570 if (isolate->heap_profiler()->GetSnapshotsCount() > 1) { | 7504 if (isolate->heap_profiler()->GetSnapshotsCount() > 1) { |
| 7571 ToInternal(this)->Delete(); | 7505 ToInternal(this)->Delete(); |
| 7572 } else { | 7506 } else { |
| 7573 // If this is the last snapshot, clean up all accessory data as well. | 7507 // If this is the last snapshot, clean up all accessory data as well. |
| 7574 isolate->heap_profiler()->DeleteAllSnapshots(); | 7508 isolate->heap_profiler()->DeleteAllSnapshots(); |
| 7575 } | 7509 } |
| 7576 } | 7510 } |
| 7577 | 7511 |
| 7578 | 7512 |
| 7579 HeapSnapshot::Type HeapSnapshot::GetType() const { | |
| 7580 i::Isolate* isolate = i::Isolate::Current(); | |
| 7581 IsDeadCheck(isolate, "v8::HeapSnapshot::GetType"); | |
| 7582 return kFull; | |
| 7583 } | |
| 7584 | |
| 7585 | |
| 7586 unsigned HeapSnapshot::GetUid() const { | 7513 unsigned HeapSnapshot::GetUid() const { |
| 7587 i::Isolate* isolate = i::Isolate::Current(); | 7514 i::Isolate* isolate = i::Isolate::Current(); |
| 7588 IsDeadCheck(isolate, "v8::HeapSnapshot::GetUid"); | 7515 IsDeadCheck(isolate, "v8::HeapSnapshot::GetUid"); |
| 7589 return ToInternal(this)->uid(); | 7516 return ToInternal(this)->uid(); |
| 7590 } | 7517 } |
| 7591 | 7518 |
| 7592 | 7519 |
| 7593 Handle<String> HeapSnapshot::GetTitle() const { | 7520 Handle<String> HeapSnapshot::GetTitle() const { |
| 7594 i::Isolate* isolate = i::Isolate::Current(); | 7521 i::Isolate* isolate = i::Isolate::Current(); |
| 7595 IsDeadCheck(isolate, "v8::HeapSnapshot::GetTitle"); | 7522 IsDeadCheck(isolate, "v8::HeapSnapshot::GetTitle"); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7646 "v8::HeapSnapshot::Serialize", | 7573 "v8::HeapSnapshot::Serialize", |
| 7647 "Unsupported output encoding"); | 7574 "Unsupported output encoding"); |
| 7648 ApiCheck(stream->GetChunkSize() > 0, | 7575 ApiCheck(stream->GetChunkSize() > 0, |
| 7649 "v8::HeapSnapshot::Serialize", | 7576 "v8::HeapSnapshot::Serialize", |
| 7650 "Invalid stream chunk size"); | 7577 "Invalid stream chunk size"); |
| 7651 i::HeapSnapshotJSONSerializer serializer(ToInternal(this)); | 7578 i::HeapSnapshotJSONSerializer serializer(ToInternal(this)); |
| 7652 serializer.Serialize(stream); | 7579 serializer.Serialize(stream); |
| 7653 } | 7580 } |
| 7654 | 7581 |
| 7655 | 7582 |
| 7656 int HeapProfiler::GetSnapshotsCount() { | |
| 7657 i::Isolate* isolate = i::Isolate::Current(); | |
| 7658 IsDeadCheck(isolate, "v8::HeapProfiler::GetSnapshotsCount"); | |
| 7659 return isolate->heap_profiler()->GetSnapshotsCount(); | |
| 7660 } | |
| 7661 | |
| 7662 | |
| 7663 int HeapProfiler::GetSnapshotCount() { | 7583 int HeapProfiler::GetSnapshotCount() { |
| 7664 return reinterpret_cast<i::HeapProfiler*>(this)->GetSnapshotsCount(); | 7584 return reinterpret_cast<i::HeapProfiler*>(this)->GetSnapshotsCount(); |
| 7665 } | 7585 } |
| 7666 | 7586 |
| 7667 | 7587 |
| 7668 const HeapSnapshot* HeapProfiler::GetSnapshot(int index) { | |
| 7669 i::Isolate* isolate = i::Isolate::Current(); | |
| 7670 IsDeadCheck(isolate, "v8::HeapProfiler::GetSnapshot"); | |
| 7671 return reinterpret_cast<const HeapSnapshot*>( | |
| 7672 isolate->heap_profiler()->GetSnapshot(index)); | |
| 7673 } | |
| 7674 | |
| 7675 | |
| 7676 const HeapSnapshot* HeapProfiler::GetHeapSnapshot(int index) { | 7588 const HeapSnapshot* HeapProfiler::GetHeapSnapshot(int index) { |
| 7677 return reinterpret_cast<const HeapSnapshot*>( | 7589 return reinterpret_cast<const HeapSnapshot*>( |
| 7678 reinterpret_cast<i::HeapProfiler*>(this)->GetSnapshot(index)); | 7590 reinterpret_cast<i::HeapProfiler*>(this)->GetSnapshot(index)); |
| 7679 } | 7591 } |
| 7680 | 7592 |
| 7681 | 7593 |
| 7682 const HeapSnapshot* HeapProfiler::FindSnapshot(unsigned uid) { | |
| 7683 i::Isolate* isolate = i::Isolate::Current(); | |
| 7684 IsDeadCheck(isolate, "v8::HeapProfiler::FindSnapshot"); | |
| 7685 return reinterpret_cast<const HeapSnapshot*>( | |
| 7686 isolate->heap_profiler()->FindSnapshot(uid)); | |
| 7687 } | |
| 7688 | |
| 7689 | |
| 7690 const HeapSnapshot* HeapProfiler::FindHeapSnapshot(unsigned uid) { | 7594 const HeapSnapshot* HeapProfiler::FindHeapSnapshot(unsigned uid) { |
| 7691 return reinterpret_cast<const HeapSnapshot*>( | 7595 return reinterpret_cast<const HeapSnapshot*>( |
| 7692 reinterpret_cast<i::HeapProfiler*>(this)->FindSnapshot(uid)); | 7596 reinterpret_cast<i::HeapProfiler*>(this)->FindSnapshot(uid)); |
| 7693 } | 7597 } |
| 7694 | 7598 |
| 7695 | 7599 |
| 7696 SnapshotObjectId HeapProfiler::GetSnapshotObjectId(Handle<Value> value) { | |
| 7697 i::Isolate* isolate = i::Isolate::Current(); | |
| 7698 IsDeadCheck(isolate, "v8::HeapProfiler::GetSnapshotObjectId"); | |
| 7699 i::Handle<i::Object> obj = Utils::OpenHandle(*value); | |
| 7700 return isolate->heap_profiler()->GetSnapshotObjectId(obj); | |
| 7701 } | |
| 7702 | |
| 7703 | |
| 7704 SnapshotObjectId HeapProfiler::GetObjectId(Handle<Value> value) { | 7600 SnapshotObjectId HeapProfiler::GetObjectId(Handle<Value> value) { |
| 7705 i::Handle<i::Object> obj = Utils::OpenHandle(*value); | 7601 i::Handle<i::Object> obj = Utils::OpenHandle(*value); |
| 7706 return reinterpret_cast<i::HeapProfiler*>(this)->GetSnapshotObjectId(obj); | 7602 return reinterpret_cast<i::HeapProfiler*>(this)->GetSnapshotObjectId(obj); |
| 7707 } | 7603 } |
| 7708 | 7604 |
| 7709 | 7605 |
| 7710 const HeapSnapshot* HeapProfiler::TakeSnapshot(Handle<String> title, | |
| 7711 HeapSnapshot::Type type, | |
| 7712 ActivityControl* control, | |
| 7713 ObjectNameResolver* resolver) { | |
| 7714 i::Isolate* isolate = i::Isolate::Current(); | |
| 7715 IsDeadCheck(isolate, "v8::HeapProfiler::TakeSnapshot"); | |
| 7716 return reinterpret_cast<const HeapSnapshot*>( | |
| 7717 isolate->heap_profiler()->TakeSnapshot( | |
| 7718 *Utils::OpenHandle(*title), control, resolver)); | |
| 7719 } | |
| 7720 | |
| 7721 | |
| 7722 const HeapSnapshot* HeapProfiler::TakeHeapSnapshot( | 7606 const HeapSnapshot* HeapProfiler::TakeHeapSnapshot( |
| 7723 Handle<String> title, | 7607 Handle<String> title, |
| 7724 ActivityControl* control, | 7608 ActivityControl* control, |
| 7725 ObjectNameResolver* resolver) { | 7609 ObjectNameResolver* resolver) { |
| 7726 return reinterpret_cast<const HeapSnapshot*>( | 7610 return reinterpret_cast<const HeapSnapshot*>( |
| 7727 reinterpret_cast<i::HeapProfiler*>(this)->TakeSnapshot( | 7611 reinterpret_cast<i::HeapProfiler*>(this)->TakeSnapshot( |
| 7728 *Utils::OpenHandle(*title), control, resolver)); | 7612 *Utils::OpenHandle(*title), control, resolver)); |
| 7729 } | 7613 } |
| 7730 | 7614 |
| 7731 | 7615 |
| 7732 void HeapProfiler::StartHeapObjectsTracking() { | |
| 7733 i::Isolate* isolate = i::Isolate::Current(); | |
| 7734 IsDeadCheck(isolate, "v8::HeapProfiler::StartHeapObjectsTracking"); | |
| 7735 isolate->heap_profiler()->StartHeapObjectsTracking(); | |
| 7736 } | |
| 7737 | |
| 7738 | |
| 7739 void HeapProfiler::StartTrackingHeapObjects() { | 7616 void HeapProfiler::StartTrackingHeapObjects() { |
| 7740 reinterpret_cast<i::HeapProfiler*>(this)->StartHeapObjectsTracking(); | 7617 reinterpret_cast<i::HeapProfiler*>(this)->StartHeapObjectsTracking(); |
| 7741 } | 7618 } |
| 7742 | 7619 |
| 7743 | 7620 |
| 7744 void HeapProfiler::StopHeapObjectsTracking() { | |
| 7745 i::Isolate* isolate = i::Isolate::Current(); | |
| 7746 IsDeadCheck(isolate, "v8::HeapProfiler::StopHeapObjectsTracking"); | |
| 7747 isolate->heap_profiler()->StopHeapObjectsTracking(); | |
| 7748 } | |
| 7749 | |
| 7750 | |
| 7751 void HeapProfiler::StopTrackingHeapObjects() { | 7621 void HeapProfiler::StopTrackingHeapObjects() { |
| 7752 reinterpret_cast<i::HeapProfiler*>(this)->StopHeapObjectsTracking(); | 7622 reinterpret_cast<i::HeapProfiler*>(this)->StopHeapObjectsTracking(); |
| 7753 } | 7623 } |
| 7754 | 7624 |
| 7755 | 7625 |
| 7756 SnapshotObjectId HeapProfiler::PushHeapObjectsStats(OutputStream* stream) { | |
| 7757 i::Isolate* isolate = i::Isolate::Current(); | |
| 7758 IsDeadCheck(isolate, "v8::HeapProfiler::PushHeapObjectsStats"); | |
| 7759 return isolate->heap_profiler()->PushHeapObjectsStats(stream); | |
| 7760 } | |
| 7761 | |
| 7762 | |
| 7763 SnapshotObjectId HeapProfiler::GetHeapStats(OutputStream* stream) { | 7626 SnapshotObjectId HeapProfiler::GetHeapStats(OutputStream* stream) { |
| 7764 return reinterpret_cast<i::HeapProfiler*>(this)->PushHeapObjectsStats(stream); | 7627 return reinterpret_cast<i::HeapProfiler*>(this)->PushHeapObjectsStats(stream); |
| 7765 } | 7628 } |
| 7766 | 7629 |
| 7767 | 7630 |
| 7768 void HeapProfiler::DeleteAllSnapshots() { | |
| 7769 i::Isolate* isolate = i::Isolate::Current(); | |
| 7770 IsDeadCheck(isolate, "v8::HeapProfiler::DeleteAllSnapshots"); | |
| 7771 isolate->heap_profiler()->DeleteAllSnapshots(); | |
| 7772 } | |
| 7773 | |
| 7774 | |
| 7775 void HeapProfiler::DeleteAllHeapSnapshots() { | 7631 void HeapProfiler::DeleteAllHeapSnapshots() { |
| 7776 reinterpret_cast<i::HeapProfiler*>(this)->DeleteAllSnapshots(); | 7632 reinterpret_cast<i::HeapProfiler*>(this)->DeleteAllSnapshots(); |
| 7777 } | 7633 } |
| 7778 | 7634 |
| 7779 | 7635 |
| 7780 void HeapProfiler::DefineWrapperClass(uint16_t class_id, | |
| 7781 WrapperInfoCallback callback) { | |
| 7782 i::Isolate::Current()->heap_profiler()->DefineWrapperClass(class_id, | |
| 7783 callback); | |
| 7784 } | |
| 7785 | |
| 7786 | |
| 7787 void HeapProfiler::SetWrapperClassInfoProvider(uint16_t class_id, | 7636 void HeapProfiler::SetWrapperClassInfoProvider(uint16_t class_id, |
| 7788 WrapperInfoCallback callback) { | 7637 WrapperInfoCallback callback) { |
| 7789 reinterpret_cast<i::HeapProfiler*>(this)->DefineWrapperClass(class_id, | 7638 reinterpret_cast<i::HeapProfiler*>(this)->DefineWrapperClass(class_id, |
| 7790 callback); | 7639 callback); |
| 7791 } | 7640 } |
| 7792 | 7641 |
| 7793 | 7642 |
| 7794 int HeapProfiler::GetPersistentHandleCount() { | |
| 7795 i::Isolate* isolate = i::Isolate::Current(); | |
| 7796 return isolate->global_handles()->NumberOfGlobalHandles(); | |
| 7797 } | |
| 7798 | |
| 7799 | |
| 7800 size_t HeapProfiler::GetMemorySizeUsedByProfiler() { | |
| 7801 return i::Isolate::Current()->heap_profiler()->GetMemorySizeUsedByProfiler(); | |
| 7802 } | |
| 7803 | |
| 7804 | |
| 7805 size_t HeapProfiler::GetProfilerMemorySize() { | 7643 size_t HeapProfiler::GetProfilerMemorySize() { |
| 7806 return reinterpret_cast<i::HeapProfiler*>(this)-> | 7644 return reinterpret_cast<i::HeapProfiler*>(this)-> |
| 7807 GetMemorySizeUsedByProfiler(); | 7645 GetMemorySizeUsedByProfiler(); |
| 7808 } | 7646 } |
| 7809 | 7647 |
| 7810 | 7648 |
| 7811 void HeapProfiler::SetRetainedObjectInfo(UniqueId id, | 7649 void HeapProfiler::SetRetainedObjectInfo(UniqueId id, |
| 7812 RetainedObjectInfo* info) { | 7650 RetainedObjectInfo* info) { |
| 7813 reinterpret_cast<i::HeapProfiler*>(this)->SetRetainedObjectInfo(id, info); | 7651 reinterpret_cast<i::HeapProfiler*>(this)->SetRetainedObjectInfo(id, info); |
| 7814 } | 7652 } |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8071 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); | 7909 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); |
| 8072 Address callback_address = | 7910 Address callback_address = |
| 8073 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 7911 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
| 8074 VMState<EXTERNAL> state(isolate); | 7912 VMState<EXTERNAL> state(isolate); |
| 8075 ExternalCallbackScope call_scope(isolate, callback_address); | 7913 ExternalCallbackScope call_scope(isolate, callback_address); |
| 8076 return callback(info); | 7914 return callback(info); |
| 8077 } | 7915 } |
| 8078 | 7916 |
| 8079 | 7917 |
| 8080 } } // namespace v8::internal | 7918 } } // namespace v8::internal |
| OLD | NEW |