| Index: runtime/vm/dart_api_impl.cc
|
| diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
|
| index 5aed56de65caa4d0bdab34ae3275342b5d8d5d85..a826afe32ec274256420d2f23da88d6dc6738955 100644
|
| --- a/runtime/vm/dart_api_impl.cc
|
| +++ b/runtime/vm/dart_api_impl.cc
|
| @@ -79,6 +79,7 @@ const char* CanonicalFunction(const char* func) {
|
| }
|
| }
|
|
|
| +#ifndef PRODUCT
|
| #define API_TIMELINE_DURATION \
|
| TimelineDurationScope tds(Thread::Current(), \
|
| Timeline::GetVMApiStream(), \
|
| @@ -88,7 +89,10 @@ const char* CanonicalFunction(const char* func) {
|
| TimelineBeginEndScope tbes(Thread::Current(), \
|
| Timeline::GetVMApiStream(), \
|
| CURRENT_FUNC)
|
| -
|
| +#else
|
| +#define API_TIMELINE_DURATION do { } while (false)
|
| +#define API_TIMELINE_BEGIN_END do { } while (false)
|
| +#endif // !PRODUCT
|
|
|
| #if defined(DEBUG)
|
| // An object visitor which will iterate over all the function objects in the
|
| @@ -1255,11 +1259,11 @@ DART_EXPORT Dart_Isolate Dart_CreateIsolate(const char* script_uri,
|
| const Error& error_obj =
|
| Error::Handle(Z, Dart::InitializeIsolate(snapshot, callback_data));
|
| if (error_obj.IsNull()) {
|
| - #if defined(DART_NO_SNAPSHOT)
|
| + #if defined(DART_NO_SNAPSHOT) && !defined(PRODUCT)
|
| if (FLAG_check_function_fingerprints) {
|
| Library::CheckFunctionFingerprints();
|
| }
|
| - #endif // defined(DART_NO_SNAPSHOT).
|
| + #endif // defined(DART_NO_SNAPSHOT) && !defined(PRODUCT).
|
| // We exit the API scope entered above.
|
| Dart_ExitScope();
|
| // A Thread structure has been associated to the thread, we do the
|
| @@ -5731,6 +5735,9 @@ DART_EXPORT int64_t Dart_TimelineGetMicros() {
|
|
|
|
|
| DART_EXPORT void Dart_TimelineSetRecordedStreams(int64_t stream_mask) {
|
| + if (!FLAG_support_timeline) {
|
| + return;
|
| + }
|
| Isolate* isolate = Isolate::Current();
|
| CHECK_ISOLATE(isolate);
|
| isolate->GetAPIStream()->set_enabled(
|
| @@ -5752,6 +5759,9 @@ DART_EXPORT void Dart_TimelineSetRecordedStreams(int64_t stream_mask) {
|
|
|
| DART_EXPORT void Dart_GlobalTimelineSetRecordedStreams(int64_t stream_mask) {
|
| // Per isolate overrides.
|
| + if (!FLAG_support_timeline) {
|
| + return;
|
| + }
|
| const bool api_enabled = (stream_mask & DART_TIMELINE_STREAM_API) != 0;
|
| const bool compiler_enabled =
|
| (stream_mask & DART_TIMELINE_STREAM_COMPILER) != 0;
|
| @@ -5930,6 +5940,9 @@ DART_EXPORT bool Dart_GlobalTimelineGetTrace(Dart_StreamConsumer consumer,
|
| DART_EXPORT Dart_Handle Dart_TimelineDuration(const char* label,
|
| int64_t start_micros,
|
| int64_t end_micros) {
|
| + if (!FLAG_support_timeline) {
|
| + return Api::Success();
|
| + }
|
| Isolate* isolate = Isolate::Current();
|
| CHECK_ISOLATE(isolate);
|
| if (label == NULL) {
|
| @@ -5951,6 +5964,9 @@ DART_EXPORT Dart_Handle Dart_TimelineDuration(const char* label,
|
|
|
|
|
| DART_EXPORT Dart_Handle Dart_TimelineInstant(const char* label) {
|
| + if (!FLAG_support_timeline) {
|
| + return Api::Success();
|
| + }
|
| Isolate* isolate = Isolate::Current();
|
| CHECK_ISOLATE(isolate);
|
| if (label == NULL) {
|
| @@ -5969,6 +5985,9 @@ DART_EXPORT Dart_Handle Dart_TimelineInstant(const char* label) {
|
|
|
| DART_EXPORT Dart_Handle Dart_TimelineAsyncBegin(const char* label,
|
| int64_t* async_id) {
|
| + if (!FLAG_support_timeline) {
|
| + return Api::Success();
|
| + }
|
| Isolate* isolate = Isolate::Current();
|
| CHECK_ISOLATE(isolate);
|
| if (label == NULL) {
|
| @@ -5994,6 +6013,9 @@ DART_EXPORT Dart_Handle Dart_TimelineAsyncBegin(const char* label,
|
|
|
| DART_EXPORT Dart_Handle Dart_TimelineAsyncInstant(const char* label,
|
| int64_t async_id) {
|
| + if (!FLAG_support_timeline) {
|
| + return Api::Success();
|
| + }
|
| if (async_id < 0) {
|
| return Api::Success();
|
| }
|
| @@ -6015,6 +6037,9 @@ DART_EXPORT Dart_Handle Dart_TimelineAsyncInstant(const char* label,
|
|
|
| DART_EXPORT Dart_Handle Dart_TimelineAsyncEnd(const char* label,
|
| int64_t async_id) {
|
| + if (!FLAG_support_timeline) {
|
| + return Api::Success();
|
| + }
|
| if (async_id < 0) {
|
| return Api::Success();
|
| }
|
|
|