OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "include/dart_api.h" | 5 #include "include/dart_api.h" |
6 #include "include/dart_mirrors_api.h" | 6 #include "include/dart_mirrors_api.h" |
7 #include "include/dart_native_api.h" | 7 #include "include/dart_native_api.h" |
8 | 8 |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "vm/class_finalizer.h" | 10 #include "vm/class_finalizer.h" |
(...skipping 5671 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5682 CHECK_ISOLATE(isolate); | 5682 CHECK_ISOLATE(isolate); |
5683 if (label == NULL) { | 5683 if (label == NULL) { |
5684 RETURN_NULL_ERROR(label); | 5684 RETURN_NULL_ERROR(label); |
5685 } | 5685 } |
5686 if (start_micros > end_micros) { | 5686 if (start_micros > end_micros) { |
5687 const char* msg = "%s: start_micros must be <= end_micros"; | 5687 const char* msg = "%s: start_micros must be <= end_micros"; |
5688 return Api::NewError(msg, CURRENT_FUNC); | 5688 return Api::NewError(msg, CURRENT_FUNC); |
5689 } | 5689 } |
5690 TimelineStream* stream = isolate->GetEmbedderStream(); | 5690 TimelineStream* stream = isolate->GetEmbedderStream(); |
5691 ASSERT(stream != NULL); | 5691 ASSERT(stream != NULL); |
5692 TimelineEvent* event = stream->RecordEvent(); | 5692 TimelineEvent* event = stream->StartEvent(); |
5693 if (event != NULL) { | 5693 if (event != NULL) { |
5694 event->Duration(stream, label, start_micros, end_micros); | 5694 event->Duration(label, start_micros, end_micros); |
| 5695 event->Complete(); |
5695 } | 5696 } |
5696 return Api::Success(); | 5697 return Api::Success(); |
5697 } | 5698 } |
5698 | 5699 |
5699 | 5700 |
5700 DART_EXPORT Dart_Handle Dart_TimelineInstant(const char* label) { | 5701 DART_EXPORT Dart_Handle Dart_TimelineInstant(const char* label) { |
5701 Isolate* isolate = Isolate::Current(); | 5702 Isolate* isolate = Isolate::Current(); |
5702 CHECK_ISOLATE(isolate); | 5703 CHECK_ISOLATE(isolate); |
5703 if (label == NULL) { | 5704 if (label == NULL) { |
5704 RETURN_NULL_ERROR(label); | 5705 RETURN_NULL_ERROR(label); |
5705 } | 5706 } |
5706 TimelineStream* stream = isolate->GetEmbedderStream(); | 5707 TimelineStream* stream = isolate->GetEmbedderStream(); |
5707 ASSERT(stream != NULL); | 5708 ASSERT(stream != NULL); |
5708 TimelineEvent* event = stream->RecordEvent(); | 5709 TimelineEvent* event = stream->StartEvent(); |
5709 if (event != NULL) { | 5710 if (event != NULL) { |
5710 event->Instant(stream, label); | 5711 event->Instant(label); |
| 5712 event->Complete(); |
5711 } | 5713 } |
5712 return Api::Success(); | 5714 return Api::Success(); |
5713 } | 5715 } |
5714 | 5716 |
5715 | 5717 |
5716 DART_EXPORT Dart_Handle Dart_TimelineAsyncBegin(const char* label, | 5718 DART_EXPORT Dart_Handle Dart_TimelineAsyncBegin(const char* label, |
5717 int64_t* async_id) { | 5719 int64_t* async_id) { |
5718 Isolate* isolate = Isolate::Current(); | 5720 Isolate* isolate = Isolate::Current(); |
5719 CHECK_ISOLATE(isolate); | 5721 CHECK_ISOLATE(isolate); |
5720 if (label == NULL) { | 5722 if (label == NULL) { |
5721 RETURN_NULL_ERROR(label); | 5723 RETURN_NULL_ERROR(label); |
5722 } | 5724 } |
5723 if (async_id == NULL) { | 5725 if (async_id == NULL) { |
5724 RETURN_NULL_ERROR(async_id); | 5726 RETURN_NULL_ERROR(async_id); |
5725 } | 5727 } |
5726 *async_id = -1; | 5728 *async_id = -1; |
5727 TimelineStream* stream = isolate->GetEmbedderStream(); | 5729 TimelineStream* stream = isolate->GetEmbedderStream(); |
5728 ASSERT(stream != NULL); | 5730 ASSERT(stream != NULL); |
5729 TimelineEvent* event = stream->RecordEvent(); | 5731 TimelineEvent* event = stream->StartEvent(); |
5730 if (event != NULL) { | 5732 if (event != NULL) { |
5731 *async_id = event->AsyncBegin(stream, label); | 5733 *async_id = event->AsyncBegin(label); |
| 5734 event->Complete(); |
5732 } | 5735 } |
5733 return Api::Success(); | 5736 return Api::Success(); |
5734 } | 5737 } |
5735 | 5738 |
5736 | 5739 |
5737 DART_EXPORT Dart_Handle Dart_TimelineAsyncInstant(const char* label, | 5740 DART_EXPORT Dart_Handle Dart_TimelineAsyncInstant(const char* label, |
5738 int64_t async_id) { | 5741 int64_t async_id) { |
5739 if (async_id < 0) { | 5742 if (async_id < 0) { |
5740 return Api::Success(); | 5743 return Api::Success(); |
5741 } | 5744 } |
5742 Isolate* isolate = Isolate::Current(); | 5745 Isolate* isolate = Isolate::Current(); |
5743 CHECK_ISOLATE(isolate); | 5746 CHECK_ISOLATE(isolate); |
5744 if (label == NULL) { | 5747 if (label == NULL) { |
5745 RETURN_NULL_ERROR(label); | 5748 RETURN_NULL_ERROR(label); |
5746 } | 5749 } |
5747 TimelineStream* stream = isolate->GetEmbedderStream(); | 5750 TimelineStream* stream = isolate->GetEmbedderStream(); |
5748 ASSERT(stream != NULL); | 5751 ASSERT(stream != NULL); |
5749 TimelineEvent* event = stream->RecordEvent(); | 5752 TimelineEvent* event = stream->StartEvent(); |
5750 if (event != NULL) { | 5753 if (event != NULL) { |
5751 event->AsyncInstant(stream, label, async_id); | 5754 event->AsyncInstant(label, async_id); |
| 5755 event->Complete(); |
5752 } | 5756 } |
5753 return Api::Success(); | 5757 return Api::Success(); |
5754 } | 5758 } |
5755 | 5759 |
5756 | 5760 |
5757 DART_EXPORT Dart_Handle Dart_TimelineAsyncEnd(const char* label, | 5761 DART_EXPORT Dart_Handle Dart_TimelineAsyncEnd(const char* label, |
5758 int64_t async_id) { | 5762 int64_t async_id) { |
5759 if (async_id < 0) { | 5763 if (async_id < 0) { |
5760 return Api::Success(); | 5764 return Api::Success(); |
5761 } | 5765 } |
5762 Isolate* isolate = Isolate::Current(); | 5766 Isolate* isolate = Isolate::Current(); |
5763 CHECK_ISOLATE(isolate); | 5767 CHECK_ISOLATE(isolate); |
5764 if (label == NULL) { | 5768 if (label == NULL) { |
5765 RETURN_NULL_ERROR(label); | 5769 RETURN_NULL_ERROR(label); |
5766 } | 5770 } |
5767 TimelineStream* stream = isolate->GetEmbedderStream(); | 5771 TimelineStream* stream = isolate->GetEmbedderStream(); |
5768 ASSERT(stream != NULL); | 5772 ASSERT(stream != NULL); |
5769 TimelineEvent* event = stream->RecordEvent(); | 5773 TimelineEvent* event = stream->StartEvent(); |
5770 if (event != NULL) { | 5774 if (event != NULL) { |
5771 event->AsyncEnd(stream, label, async_id); | 5775 event->AsyncEnd(label, async_id); |
| 5776 event->Complete(); |
5772 } | 5777 } |
5773 return Api::Success(); | 5778 return Api::Success(); |
5774 } | 5779 } |
5775 | 5780 |
5776 } // namespace dart | 5781 } // namespace dart |
OLD | NEW |