Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: runtime/vm/dart_api_impl.cc

Issue 1660063002: Remove many features when building product mode (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "lib/stacktrace.h" 10 #include "lib/stacktrace.h"
(...skipping 5522 matching lines...) Expand 10 before | Expand all | Expand 10 after
5533 Dart_Handle state = Api::CheckAndFinalizePendingClasses(T); 5533 Dart_Handle state = Api::CheckAndFinalizePendingClasses(T);
5534 if (::Dart_IsError(state)) { 5534 if (::Dart_IsError(state)) {
5535 return state; 5535 return state;
5536 } 5536 }
5537 5537
5538 // Now that the newly loaded classes are finalized, notify the debugger 5538 // Now that the newly loaded classes are finalized, notify the debugger
5539 // that new code has been loaded. If there are latent breakpoints in 5539 // that new code has been loaded. If there are latent breakpoints in
5540 // the new code, the debugger convert them to unresolved source breakpoints. 5540 // the new code, the debugger convert them to unresolved source breakpoints.
5541 // The code that completes the futures (invoked below) may call into the 5541 // The code that completes the futures (invoked below) may call into the
5542 // newly loaded code and trigger one of these breakpoints. 5542 // newly loaded code and trigger one of these breakpoints.
5543 #ifndef PRODUCT
5543 I->debugger()->NotifyDoneLoading(); 5544 I->debugger()->NotifyDoneLoading();
rmacnak 2016/02/04 21:26:41 + FLAG_support_debugger
5545 #endif // !PRODUCT
5544 5546
5545 if (FLAG_enable_mirrors) { 5547 if (FLAG_enable_mirrors) {
5546 // Notify mirrors that MirrorSystem.libraries needs to be recomputed. 5548 // Notify mirrors that MirrorSystem.libraries needs to be recomputed.
5547 const Library& libmirrors = Library::Handle(Z, Library::MirrorsLibrary()); 5549 const Library& libmirrors = Library::Handle(Z, Library::MirrorsLibrary());
5548 const Field& dirty_bit = Field::Handle(Z, 5550 const Field& dirty_bit = Field::Handle(Z,
5549 libmirrors.LookupLocalField(String::Handle(String::New("dirty")))); 5551 libmirrors.LookupLocalField(String::Handle(String::New("dirty"))));
5550 ASSERT(!dirty_bit.IsNull() && dirty_bit.is_static()); 5552 ASSERT(!dirty_bit.IsNull() && dirty_bit.is_static());
5551 dirty_bit.SetStaticValue(Bool::True()); 5553 dirty_bit.SetStaticValue(Bool::True());
5552 } 5554 }
5553 5555
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
5641 5643
5642 DART_EXPORT Dart_Port Dart_ServiceWaitForLoadPort() { 5644 DART_EXPORT Dart_Port Dart_ServiceWaitForLoadPort() {
5643 return ServiceIsolate::WaitForLoadPort(); 5645 return ServiceIsolate::WaitForLoadPort();
5644 } 5646 }
5645 5647
5646 5648
5647 DART_EXPORT void Dart_RegisterIsolateServiceRequestCallback( 5649 DART_EXPORT void Dart_RegisterIsolateServiceRequestCallback(
5648 const char* name, 5650 const char* name,
5649 Dart_ServiceRequestCallback callback, 5651 Dart_ServiceRequestCallback callback,
5650 void* user_data) { 5652 void* user_data) {
5653 #ifndef PRODUCT
5651 Service::RegisterIsolateEmbedderCallback(name, callback, user_data); 5654 Service::RegisterIsolateEmbedderCallback(name, callback, user_data);
5655 #endif // !PRODUCT
5652 } 5656 }
5653 5657
5654 5658
5655 DART_EXPORT void Dart_RegisterRootServiceRequestCallback( 5659 DART_EXPORT void Dart_RegisterRootServiceRequestCallback(
5656 const char* name, 5660 const char* name,
5657 Dart_ServiceRequestCallback callback, 5661 Dart_ServiceRequestCallback callback,
5658 void* user_data) { 5662 void* user_data) {
5663 #ifndef PRODUCT
5659 Service::RegisterRootEmbedderCallback(name, callback, user_data); 5664 Service::RegisterRootEmbedderCallback(name, callback, user_data);
5665 #endif // !PRODUCT
5660 } 5666 }
5661 5667
5662 5668
5663 DART_EXPORT Dart_Handle Dart_SetServiceStreamCallbacks( 5669 DART_EXPORT Dart_Handle Dart_SetServiceStreamCallbacks(
5664 Dart_ServiceStreamListenCallback listen_callback, 5670 Dart_ServiceStreamListenCallback listen_callback,
5665 Dart_ServiceStreamCancelCallback cancel_callback) { 5671 Dart_ServiceStreamCancelCallback cancel_callback) {
5672 #ifdef PRODUCT
5673 return Api::Success();
rmacnak 2016/02/04 21:26:41 Should we expect the embedder to also behave a bit
Cutch 2016/02/04 22:12:52 I'm trying to allow 'disabled' API calls to become
5674 #else
5666 if (listen_callback != NULL) { 5675 if (listen_callback != NULL) {
5667 if (Service::stream_listen_callback() != NULL) { 5676 if (Service::stream_listen_callback() != NULL) {
5668 return Api::NewError( 5677 return Api::NewError(
5669 "%s permits only one listen callback to be registered, please " 5678 "%s permits only one listen callback to be registered, please "
5670 "remove the existing callback and then add this callback", 5679 "remove the existing callback and then add this callback",
5671 CURRENT_FUNC); 5680 CURRENT_FUNC);
5672 } 5681 }
5673 } else { 5682 } else {
5674 if (Service::stream_listen_callback() == NULL) { 5683 if (Service::stream_listen_callback() == NULL) {
5675 return Api::NewError( 5684 return Api::NewError(
(...skipping 10 matching lines...) Expand all
5686 } 5695 }
5687 } else { 5696 } else {
5688 if (Service::stream_cancel_callback() == NULL) { 5697 if (Service::stream_cancel_callback() == NULL) {
5689 return Api::NewError( 5698 return Api::NewError(
5690 "%s expects 'cancel_callback' to be present in the callback set.", 5699 "%s expects 'cancel_callback' to be present in the callback set.",
5691 CURRENT_FUNC); 5700 CURRENT_FUNC);
5692 } 5701 }
5693 } 5702 }
5694 Service::SetEmbedderStreamCallbacks(listen_callback, cancel_callback); 5703 Service::SetEmbedderStreamCallbacks(listen_callback, cancel_callback);
5695 return Api::Success(); 5704 return Api::Success();
5705 #endif // PRODUCT
5696 } 5706 }
5697 5707
5698 5708
5699 DART_EXPORT Dart_Handle Dart_ServiceSendDataEvent(const char* stream_id, 5709 DART_EXPORT Dart_Handle Dart_ServiceSendDataEvent(const char* stream_id,
5700 const char* event_kind, 5710 const char* event_kind,
5701 const uint8_t* bytes, 5711 const uint8_t* bytes,
5702 intptr_t bytes_length) { 5712 intptr_t bytes_length) {
5713 #ifdef PRODUCT
5714 return Api::Success();
5715 #else
5703 DARTSCOPE(Thread::Current()); 5716 DARTSCOPE(Thread::Current());
5704 Isolate* I = T->isolate(); 5717 Isolate* I = T->isolate();
5705 if (stream_id == NULL) { 5718 if (stream_id == NULL) {
5706 RETURN_NULL_ERROR(stream_id); 5719 RETURN_NULL_ERROR(stream_id);
5707 } 5720 }
5708 if (event_kind == NULL) { 5721 if (event_kind == NULL) {
5709 RETURN_NULL_ERROR(event_kind); 5722 RETURN_NULL_ERROR(event_kind);
5710 } 5723 }
5711 if (bytes == NULL) { 5724 if (bytes == NULL) {
5712 RETURN_NULL_ERROR(bytes); 5725 RETURN_NULL_ERROR(bytes);
5713 } 5726 }
5714 if (bytes_length < 0) { 5727 if (bytes_length < 0) {
5715 return Api::NewError("%s expects argument 'bytes_length' to be >= 0.", 5728 return Api::NewError("%s expects argument 'bytes_length' to be >= 0.",
5716 CURRENT_FUNC); 5729 CURRENT_FUNC);
5717 } 5730 }
5718 Service::SendEmbedderEvent(I, stream_id, event_kind, 5731 Service::SendEmbedderEvent(I, stream_id, event_kind,
5719 bytes, bytes_length); 5732 bytes, bytes_length);
5720 return Api::Success(); 5733 return Api::Success();
5734 #endif // PRODUCT
5721 } 5735 }
5722 5736
5723 5737
5724 DART_EXPORT int64_t Dart_TimelineGetMicros() { 5738 DART_EXPORT int64_t Dart_TimelineGetMicros() {
5725 return OS::GetCurrentMonotonicMicros(); 5739 return OS::GetCurrentMonotonicMicros();
5726 } 5740 }
5727 5741
5728 5742
5729 DART_EXPORT void Dart_TimelineSetRecordedStreams(int64_t stream_mask) { 5743 DART_EXPORT void Dart_TimelineSetRecordedStreams(int64_t stream_mask) {
5730 Isolate* isolate = Isolate::Current(); 5744 Isolate* isolate = Isolate::Current();
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
5868 free(output); 5882 free(output);
5869 5883
5870 // Finish the stream. 5884 // Finish the stream.
5871 FinishStreamToConsumer(consumer, user_data, "timeline"); 5885 FinishStreamToConsumer(consumer, user_data, "timeline");
5872 return true; 5886 return true;
5873 } 5887 }
5874 5888
5875 5889
5876 DART_EXPORT bool Dart_TimelineGetTrace(Dart_StreamConsumer consumer, 5890 DART_EXPORT bool Dart_TimelineGetTrace(Dart_StreamConsumer consumer,
5877 void* user_data) { 5891 void* user_data) {
5892 if (!FLAG_support_timeline) {
5893 return false;
5894 }
5878 Isolate* isolate = Isolate::Current(); 5895 Isolate* isolate = Isolate::Current();
5879 CHECK_ISOLATE(isolate); 5896 CHECK_ISOLATE(isolate);
5880 if (consumer == NULL) { 5897 if (consumer == NULL) {
5881 return false; 5898 return false;
5882 } 5899 }
5883 TimelineEventRecorder* timeline_recorder = Timeline::recorder(); 5900 TimelineEventRecorder* timeline_recorder = Timeline::recorder();
5884 if (timeline_recorder == NULL) { 5901 if (timeline_recorder == NULL) {
5885 // Nothing has been recorded. 5902 // Nothing has been recorded.
5886 return false; 5903 return false;
5887 } 5904 }
5888 Thread* T = Thread::Current(); 5905 Thread* T = Thread::Current();
5889 StackZone zone(T); 5906 StackZone zone(T);
5890 Timeline::ReclaimCachedBlocksFromThreads(); 5907 Timeline::ReclaimCachedBlocksFromThreads();
5891 JSONStream js; 5908 JSONStream js;
5892 IsolateTimelineEventFilter filter(isolate->main_port()); 5909 IsolateTimelineEventFilter filter(isolate->main_port());
5893 timeline_recorder->PrintTraceEvent(&js, &filter); 5910 timeline_recorder->PrintTraceEvent(&js, &filter);
5894 return StreamTraceEvents(consumer, user_data, &js); 5911 return StreamTraceEvents(consumer, user_data, &js);
5895 } 5912 }
5896 5913
5897 5914
5898 DART_EXPORT bool Dart_GlobalTimelineGetTrace(Dart_StreamConsumer consumer, 5915 DART_EXPORT bool Dart_GlobalTimelineGetTrace(Dart_StreamConsumer consumer,
5899 void* user_data) { 5916 void* user_data) {
5917 if (!FLAG_support_timeline) {
5918 return false;
5919 }
5900 // To support various embedders, it must be possible to call this function 5920 // To support various embedders, it must be possible to call this function
5901 // from a thread for which we have not entered an Isolate and set up a Thread 5921 // from a thread for which we have not entered an Isolate and set up a Thread
5902 // TLS object. Therefore, a Zone may not be available, a StackZone cannot be 5922 // TLS object. Therefore, a Zone may not be available, a StackZone cannot be
5903 // created, and no ZoneAllocated objects can be allocated. 5923 // created, and no ZoneAllocated objects can be allocated.
5904 if (consumer == NULL) { 5924 if (consumer == NULL) {
5905 return false; 5925 return false;
5906 } 5926 }
5907 TimelineEventRecorder* timeline_recorder = Timeline::recorder(); 5927 TimelineEventRecorder* timeline_recorder = Timeline::recorder();
5908 if (timeline_recorder == NULL) { 5928 if (timeline_recorder == NULL) {
5909 // Nothing has been recorded. 5929 // Nothing has been recorded.
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
6120 return Api::Success(); 6140 return Api::Success();
6121 } 6141 }
6122 #endif // DART_PRECOMPILER 6142 #endif // DART_PRECOMPILER
6123 6143
6124 6144
6125 DART_EXPORT bool Dart_IsRunningPrecompiledCode() { 6145 DART_EXPORT bool Dart_IsRunningPrecompiledCode() {
6126 return Dart::IsRunningPrecompiledCode(); 6146 return Dart::IsRunningPrecompiledCode();
6127 } 6147 }
6128 6148
6129 } // namespace dart 6149 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698