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

Unified Diff: runtime/vm/dart_api_impl.cc

Issue 1526463005: Emit Timeline events for most Dart_API calls (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/dart_api_impl.h ('k') | runtime/vm/timeline.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/dart_api_impl.cc
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index d4eb65e98e5398b2b6ef563100409a33fe20cc0c..c24c716d0779d6fe5665f2563b84df4a55b12db4 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -59,8 +59,6 @@ DECLARE_FLAG(bool, verify_handles);
DEFINE_FLAG(bool, check_function_fingerprints, true,
"Check function fingerprints");
#endif // defined(DART_NO_SNAPSHOT).
-DEFINE_FLAG(bool, trace_api, false,
- "Trace invocation of API calls (debug mode only)");
DEFINE_FLAG(bool, verify_acquired_data, false,
"Verify correct API acquire/release of typed data.");
@@ -79,6 +77,15 @@ const char* CanonicalFunction(const char* func) {
}
}
+#define API_TIMELINE_DURATION \
+ TimelineDurationScope tds(Thread::Current(), \
+ Timeline::GetVMApiStream(), \
+ CURRENT_FUNC)
+
+#define API_TIMELINE_BEGIN_END \
+ TimelineBeginEndScope tbes(Thread::Current(), \
+ Timeline::GetVMApiStream(), \
+ CURRENT_FUNC)
#if defined(DEBUG)
// An object visitor which will iterate over all the function objects in the
@@ -701,36 +708,37 @@ void FinalizablePersistentHandle::Finalize(
// --- Handles ---
DART_EXPORT bool Dart_IsError(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
rmacnak 2015/12/15 17:42:04 For all the Dart_IsX, I don't think it makes sense
Cutch 2015/12/15 18:06:40 Done here and elsewhere.
return RawObject::IsErrorClassId(Api::ClassId(handle));
}
DART_EXPORT bool Dart_IsApiError(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(object) == kApiErrorCid;
}
DART_EXPORT bool Dart_IsUnhandledExceptionError(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(object) == kUnhandledExceptionCid;
}
DART_EXPORT bool Dart_IsCompilationError(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(object) == kLanguageErrorCid;
}
DART_EXPORT bool Dart_IsFatalError(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(object) == kUnwindErrorCid;
}
DART_EXPORT bool Dart_IsVMRestartRequest(Dart_Handle handle) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
const Object& obj = Object::Handle(Z, Api::UnwrapHandle(handle));
return (obj.IsUnwindError() && UnwindError::Cast(obj).is_vm_restart());
@@ -738,6 +746,7 @@ DART_EXPORT bool Dart_IsVMRestartRequest(Dart_Handle handle) {
DART_EXPORT const char* Dart_GetError(Dart_Handle handle) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
const Object& obj = Object::Handle(Z, Api::UnwrapHandle(handle));
if (obj.IsError()) {
@@ -1280,7 +1289,7 @@ DART_EXPORT void* Dart_CurrentIsolateData() {
DART_EXPORT void* Dart_IsolateData(Dart_Isolate isolate) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
rmacnak 2015/12/15 17:42:04 Too small.
Cutch 2015/12/15 18:06:40 Done.
if (isolate == NULL) {
FATAL1("%s expects argument 'isolate' to be non-null.", CURRENT_FUNC);
}
@@ -1449,7 +1458,7 @@ DART_EXPORT Dart_Handle Dart_CreateLibrarySnapshot(Dart_Handle library,
DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
if (isolate == NULL) {
FATAL1("%s expects argument 'isolate' to be non-null.", CURRENT_FUNC);
}
@@ -1461,6 +1470,7 @@ DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate) {
DART_EXPORT bool Dart_IsolateMakeRunnable(Dart_Isolate isolate) {
CHECK_NO_ISOLATE(Isolate::Current());
+ API_TIMELINE_DURATION;
if (isolate == NULL) {
FATAL1("%s expects argument 'isolate' to be non-null.", CURRENT_FUNC);
}
@@ -1504,6 +1514,7 @@ DART_EXPORT Dart_Handle Dart_RunLoop() {
Isolate* I = T->isolate();
CHECK_API_SCOPE(T);
CHECK_CALLBACK_STATE(T);
+ API_TIMELINE_BEGIN_END;
Monitor monitor;
MonitorLocker ml(&monitor);
{
@@ -1539,6 +1550,7 @@ DART_EXPORT Dart_Handle Dart_HandleMessage() {
Isolate* I = T->isolate();
CHECK_API_SCOPE(T);
CHECK_CALLBACK_STATE(T);
+ API_TIMELINE_BEGIN_END;
if (I->message_handler()->HandleNextMessage() != MessageHandler::kOK) {
Dart_Handle error = Api::NewHandle(T, I->object_store()->sticky_error());
I->object_store()->clear_sticky_error();
@@ -1553,7 +1565,7 @@ DART_EXPORT bool Dart_HandleServiceMessages() {
Isolate* I = T->isolate();
CHECK_API_SCOPE(T);
CHECK_CALLBACK_STATE(T);
-
+ API_TIMELINE_DURATION;
ASSERT(I->GetAndClearResumeRequest() == false);
MessageHandler::MessageStatus status =
I->message_handler()->HandleOOBMessages();
@@ -1584,6 +1596,7 @@ static uint8_t* allocator(uint8_t* ptr, intptr_t old_size, intptr_t new_size) {
DART_EXPORT bool Dart_Post(Dart_Port port_id, Dart_Handle handle) {
DARTSCOPE(Thread::Current());
+ API_TIMELINE_DURATION;
NoSafepointScope no_safepoint_scope;
if (port_id == ILLEGAL_PORT) {
return false;
@@ -1622,6 +1635,7 @@ DART_EXPORT Dart_Handle Dart_SendPortGetId(Dart_Handle port,
Dart_Port* port_id) {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
+ API_TIMELINE_DURATION;
const SendPort& send_port = Api::UnwrapSendPortHandle(Z, port);
if (send_port.IsNull()) {
RETURN_TYPE_ERROR(Z, port, SendPort);
@@ -1781,50 +1795,50 @@ DART_EXPORT bool Dart_IsInstance(Dart_Handle object) {
DART_EXPORT bool Dart_IsNumber(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return RawObject::IsNumberClassId(Api::ClassId(object));
}
DART_EXPORT bool Dart_IsInteger(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return RawObject::IsIntegerClassId(Api::ClassId(object));
}
DART_EXPORT bool Dart_IsDouble(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(object) == kDoubleCid;
}
DART_EXPORT bool Dart_IsBoolean(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(object) == kBoolCid;
}
DART_EXPORT bool Dart_IsString(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return RawObject::IsStringClassId(Api::ClassId(object));
}
DART_EXPORT bool Dart_IsStringLatin1(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return RawObject::IsOneByteStringClassId(Api::ClassId(object));
}
DART_EXPORT bool Dart_IsExternalString(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return RawObject::IsExternalStringClassId(Api::ClassId(object));
}
DART_EXPORT bool Dart_IsList(Dart_Handle object) {
+ API_TIMELINE_DURATION;
if (RawObject::IsBuiltinListClassId(Api::ClassId(object))) {
- TRACE_API_CALL(CURRENT_FUNC);
return true;
}
@@ -1842,31 +1856,31 @@ DART_EXPORT bool Dart_IsMap(Dart_Handle object) {
DART_EXPORT bool Dart_IsLibrary(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(object) == kLibraryCid;
}
DART_EXPORT bool Dart_IsType(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(handle) == kTypeCid;
}
DART_EXPORT bool Dart_IsFunction(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(handle) == kFunctionCid;
}
DART_EXPORT bool Dart_IsVariable(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(handle) == kFieldCid;
}
DART_EXPORT bool Dart_IsTypeVariable(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(handle) == kTypeParameterCid;
}
@@ -1876,6 +1890,7 @@ DART_EXPORT bool Dart_IsClosure(Dart_Handle object) {
// different signature classes for closures.
Thread* thread = Thread::Current();
CHECK_ISOLATE(thread->isolate());
+ API_TIMELINE_DURATION;
ReusableObjectHandleScope reused_obj_handle(thread);
const Instance& closure_obj =
Api::UnwrapInstanceHandle(reused_obj_handle, object);
@@ -1884,7 +1899,7 @@ DART_EXPORT bool Dart_IsClosure(Dart_Handle object) {
DART_EXPORT bool Dart_IsTypedData(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
intptr_t cid = Api::ClassId(handle);
return RawObject::IsTypedDataClassId(cid) ||
RawObject::IsExternalTypedDataClassId(cid) ||
@@ -1893,13 +1908,13 @@ DART_EXPORT bool Dart_IsTypedData(Dart_Handle handle) {
DART_EXPORT bool Dart_IsByteBuffer(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
return Api::ClassId(handle) == kByteBufferCid;
}
DART_EXPORT bool Dart_IsFuture(Dart_Handle handle) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
const Object& obj = Object::Handle(Z, Api::UnwrapHandle(handle));
@@ -1923,6 +1938,7 @@ DART_EXPORT bool Dart_IsFuture(Dart_Handle handle) {
// --- Instances ----
DART_EXPORT Dart_Handle Dart_InstanceGetType(Dart_Handle instance) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
const Object& obj = Object::Handle(Z, Api::UnwrapHandle(instance));
@@ -1941,6 +1957,7 @@ DART_EXPORT Dart_Handle Dart_InstanceGetType(Dart_Handle instance) {
DART_EXPORT Dart_Handle Dart_IntegerFitsIntoInt64(Dart_Handle integer,
bool* fits) {
+ API_TIMELINE_DURATION;
// Fast path for Smis and Mints.
Thread* thread = Thread::Current();
Isolate* isolate = thread->isolate();
@@ -1968,6 +1985,7 @@ DART_EXPORT Dart_Handle Dart_IntegerFitsIntoUint64(Dart_Handle integer,
Thread* thread = Thread::Current();
Isolate* isolate = thread->isolate();
CHECK_ISOLATE(isolate);
+ API_TIMELINE_DURATION;
if (Api::IsSmi(integer)) {
*fits = (Api::SmiValue(integer) >= 0);
return Api::Success();
@@ -1993,6 +2011,7 @@ DART_EXPORT Dart_Handle Dart_NewInteger(int64_t value) {
Thread* thread = Thread::Current();
Isolate* isolate = thread->isolate();
CHECK_ISOLATE(isolate);
+ API_TIMELINE_DURATION;
if (Smi::IsValid(value)) {
NOHANDLESCOPE(thread);
return Api::NewHandle(thread, Smi::New(static_cast<intptr_t>(value)));
@@ -2007,6 +2026,7 @@ DART_EXPORT Dart_Handle Dart_NewInteger(int64_t value) {
DART_EXPORT Dart_Handle Dart_NewIntegerFromUint64(uint64_t value) {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
+ API_TIMELINE_DURATION;
return Api::NewHandle(T, Integer::NewFromUint64(value));
}
@@ -2014,6 +2034,7 @@ DART_EXPORT Dart_Handle Dart_NewIntegerFromUint64(uint64_t value) {
DART_EXPORT Dart_Handle Dart_NewIntegerFromHexCString(const char* str) {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
+ API_TIMELINE_DURATION;
const String& str_obj = String::Handle(Z, String::New(str));
return Api::NewHandle(T, Integer::New(str_obj));
}
@@ -2025,6 +2046,7 @@ DART_EXPORT Dart_Handle Dart_IntegerToInt64(Dart_Handle integer,
Thread* thread = Thread::Current();
Isolate* isolate = thread->isolate();
CHECK_ISOLATE(isolate);
+ API_TIMELINE_DURATION;
if (Api::IsSmi(integer)) {
*value = Api::SmiValue(integer);
return Api::Success();
@@ -2053,6 +2075,7 @@ DART_EXPORT Dart_Handle Dart_IntegerToInt64(Dart_Handle integer,
DART_EXPORT Dart_Handle Dart_IntegerToUint64(Dart_Handle integer,
uint64_t* value) {
+ API_TIMELINE_DURATION;
// Fast path for Smis.
Thread* thread = Thread::Current();
Isolate* isolate = thread->isolate();
@@ -2094,6 +2117,7 @@ static uword BigintAllocate(intptr_t size) {
DART_EXPORT Dart_Handle Dart_IntegerToHexCString(Dart_Handle integer,
const char** value) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
const Integer& int_obj = Api::UnwrapIntegerHandle(Z, integer);
if (int_obj.IsNull()) {
@@ -2111,6 +2135,7 @@ DART_EXPORT Dart_Handle Dart_IntegerToHexCString(Dart_Handle integer,
DART_EXPORT Dart_Handle Dart_NewDouble(double value) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
return Api::NewHandle(T, Double::New(value));
@@ -2119,6 +2144,7 @@ DART_EXPORT Dart_Handle Dart_NewDouble(double value) {
DART_EXPORT Dart_Handle Dart_DoubleValue(Dart_Handle double_obj,
double* value) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
const Double& obj = Api::UnwrapDoubleHandle(Z, double_obj);
if (obj.IsNull()) {
@@ -2179,6 +2205,7 @@ DART_EXPORT Dart_Handle Dart_StringLength(Dart_Handle str, intptr_t* len) {
DART_EXPORT Dart_Handle Dart_NewStringFromCString(const char* str) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
if (str == NULL) {
RETURN_NULL_ERROR(str);
@@ -2190,6 +2217,7 @@ DART_EXPORT Dart_Handle Dart_NewStringFromCString(const char* str) {
DART_EXPORT Dart_Handle Dart_NewStringFromUTF8(const uint8_t* utf8_array,
intptr_t length) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
if (utf8_array == NULL && length != 0) {
RETURN_NULL_ERROR(utf8_array);
@@ -2218,6 +2246,7 @@ DART_EXPORT Dart_Handle Dart_NewStringFromUTF16(const uint16_t* utf16_array,
DART_EXPORT Dart_Handle Dart_NewStringFromUTF32(const int32_t* utf32_array,
intptr_t length) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
if (utf32_array == NULL && length != 0) {
RETURN_NULL_ERROR(utf32_array);
@@ -2233,6 +2262,7 @@ DART_EXPORT Dart_Handle Dart_NewExternalLatin1String(
intptr_t length,
void* peer,
Dart_PeerFinalizer cback) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
if (latin1_array == NULL && length != 0) {
RETURN_NULL_ERROR(latin1_array);
@@ -2268,6 +2298,7 @@ DART_EXPORT Dart_Handle Dart_NewExternalUTF16String(const uint16_t* utf16_array,
DART_EXPORT Dart_Handle Dart_StringToCString(Dart_Handle object,
const char** cstr) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
if (cstr == NULL) {
RETURN_NULL_ERROR(cstr);
@@ -2292,6 +2323,7 @@ DART_EXPORT Dart_Handle Dart_StringToCString(Dart_Handle object,
DART_EXPORT Dart_Handle Dart_StringToUTF8(Dart_Handle str,
uint8_t** utf8_array,
intptr_t* length) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
if (utf8_array == NULL) {
RETURN_NULL_ERROR(utf8_array);
@@ -2317,6 +2349,7 @@ DART_EXPORT Dart_Handle Dart_StringToUTF8(Dart_Handle str,
DART_EXPORT Dart_Handle Dart_StringToLatin1(Dart_Handle str,
uint8_t* latin1_array,
intptr_t* length) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
if (latin1_array == NULL) {
RETURN_NULL_ERROR(latin1_array);
@@ -2344,6 +2377,7 @@ DART_EXPORT Dart_Handle Dart_StringToLatin1(Dart_Handle str,
DART_EXPORT Dart_Handle Dart_StringToUTF16(Dart_Handle str,
uint16_t* utf16_array,
intptr_t* length) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
const String& str_obj = Api::UnwrapStringHandle(Z, str);
if (str_obj.IsNull()) {
@@ -3105,7 +3139,7 @@ static Dart_TypedData_Type GetType(intptr_t class_id) {
DART_EXPORT Dart_TypedData_Type Dart_GetTypeOfTypedData(Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
intptr_t class_id = Api::ClassId(object);
if (RawObject::IsTypedDataClassId(class_id) ||
RawObject::IsTypedDataViewClassId(class_id)) {
@@ -3117,7 +3151,7 @@ DART_EXPORT Dart_TypedData_Type Dart_GetTypeOfTypedData(Dart_Handle object) {
DART_EXPORT Dart_TypedData_Type Dart_GetTypeOfExternalTypedData(
Dart_Handle object) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
intptr_t class_id = Api::ClassId(object);
if (RawObject::IsExternalTypedDataClassId(class_id)) {
return GetType(class_id);
@@ -3866,6 +3900,7 @@ DART_EXPORT Dart_Handle Dart_InvokeConstructor(Dart_Handle object,
Dart_Handle name,
int number_of_arguments,
Dart_Handle* arguments) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
@@ -3944,6 +3979,7 @@ DART_EXPORT Dart_Handle Dart_Invoke(Dart_Handle target,
Dart_Handle name,
int number_of_arguments,
Dart_Handle* arguments) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
@@ -4070,6 +4106,7 @@ DART_EXPORT Dart_Handle Dart_Invoke(Dart_Handle target,
DART_EXPORT Dart_Handle Dart_InvokeClosure(Dart_Handle closure,
int number_of_arguments,
Dart_Handle* arguments) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
const Instance& closure_obj = Api::UnwrapInstanceHandle(Z, closure);
@@ -4099,6 +4136,7 @@ DART_EXPORT Dart_Handle Dart_InvokeClosure(Dart_Handle closure,
DART_EXPORT Dart_Handle Dart_GetField(Dart_Handle container, Dart_Handle name) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
@@ -4219,6 +4257,7 @@ DART_EXPORT Dart_Handle Dart_GetField(Dart_Handle container, Dart_Handle name) {
DART_EXPORT Dart_Handle Dart_SetField(Dart_Handle container,
Dart_Handle name,
Dart_Handle value) {
+ API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
@@ -4670,7 +4709,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeArguments(
DART_EXPORT Dart_Handle Dart_GetNativeArgument(Dart_NativeArguments args,
int index) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
if ((index < 0) || (index >= arguments->NativeArgCount())) {
return Api::NewError(
@@ -4683,7 +4722,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeArgument(Dart_NativeArguments args,
DART_EXPORT int Dart_GetNativeArgumentCount(Dart_NativeArguments args) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
return arguments->NativeArgCount();
}
@@ -4742,7 +4781,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeStringArgument(Dart_NativeArguments args,
DART_EXPORT Dart_Handle Dart_GetNativeIntegerArgument(Dart_NativeArguments args,
int index,
int64_t* value) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
if ((index < 0) || (index >= arguments->NativeArgCount())) {
return Api::NewError(
@@ -4760,7 +4799,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeIntegerArgument(Dart_NativeArguments args,
DART_EXPORT Dart_Handle Dart_GetNativeBooleanArgument(Dart_NativeArguments args,
int index,
bool* value) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
if ((index < 0) || (index >= arguments->NativeArgCount())) {
return Api::NewError(
@@ -4778,7 +4817,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeBooleanArgument(Dart_NativeArguments args,
DART_EXPORT Dart_Handle Dart_GetNativeDoubleArgument(Dart_NativeArguments args,
int index,
double* value) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
if ((index < 0) || (index >= arguments->NativeArgCount())) {
return Api::NewError(
@@ -4866,7 +4905,7 @@ DART_EXPORT Dart_Handle Dart_SetEnvironmentCallback(
// --- Scripts and Libraries ---
DART_EXPORT void Dart_SetBooleanReturnValue(Dart_NativeArguments args,
bool retval) {
- TRACE_API_CALL(CURRENT_FUNC);
+ API_TIMELINE_DURATION;
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
arguments->SetReturn(Bool::Get(retval));
}
« no previous file with comments | « runtime/vm/dart_api_impl.h ('k') | runtime/vm/timeline.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698