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

Unified Diff: runtime/vm/dart_api_impl.cc

Issue 1156143003: Refactor Isolate -> Thread in NativeArguments and exception handler jump. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Fix comment; remove unused accessor. Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/code_generator.cc ('k') | runtime/vm/exceptions.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 d56cb0f5b8f25948cdb9a5fc6ab1244c0a2fd909..42ec49c3d302d6e69ce5f87975528872f57c1da5 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -120,7 +120,7 @@ static bool GetNativeStringArgument(NativeArguments* arguments,
*str = NULL;
return true;
}
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
*peer = NULL;
REUSABLE_OBJECT_HANDLESCOPE(isolate);
@@ -147,7 +147,7 @@ static bool GetNativeIntegerArgument(NativeArguments* arguments,
if (Api::GetNativeIntegerArgument(arguments, arg_index, value)) {
return true;
}
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
REUSABLE_OBJECT_HANDLESCOPE(isolate);
Object& obj = isolate->ObjectHandle();
@@ -173,7 +173,7 @@ static bool GetNativeUnsignedIntegerArgument(NativeArguments* arguments,
*value = static_cast<uint64_t>(arg_value);
return true;
}
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
REUSABLE_OBJECT_HANDLESCOPE(isolate);
Object& obj = isolate->ObjectHandle();
@@ -197,7 +197,7 @@ static bool GetNativeDoubleArgument(NativeArguments* arguments,
if (Api::GetNativeDoubleArgument(arguments, arg_index, value)) {
return true;
}
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
REUSABLE_OBJECT_HANDLESCOPE(isolate);
Object& obj = isolate->ObjectHandle();
@@ -223,7 +223,7 @@ static Dart_Handle GetNativeFieldsOfArgument(NativeArguments* arguments,
field_values)) {
return Api::Success();
}
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
REUSABLE_OBJECT_HANDLESCOPE(isolate);
Object& obj = isolate->ObjectHandle();
@@ -488,7 +488,7 @@ bool Api::StringGetPeerHelper(NativeArguments* arguments,
return true;
}
if (cid == kOneByteStringCid || cid == kTwoByteStringCid) {
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
*peer = isolate->heap()->GetPeer(raw_obj);
return (*peer != 0);
}
@@ -2707,7 +2707,8 @@ static RawObject* ResolveConstructor(const char* current_func,
static RawObject* ThrowArgumentError(const char* exception_message) {
- Isolate* isolate = Isolate::Current();
+ Thread* thread = Thread::Current();
+ Isolate* isolate = thread->isolate();
// Lookup the class ArgumentError in dart:core.
const String& lib_url = String::Handle(String::New("dart:core"));
const String& class_name = String::Handle(String::New("ArgumentError"));
@@ -2765,7 +2766,7 @@ static RawObject* ThrowArgumentError(const char* exception_message) {
state->UnwindScopes(isolate->top_exit_frame_info());
saved_exception = &Instance::Handle(raw_exception);
}
- Exceptions::Throw(isolate, *saved_exception);
+ Exceptions::Throw(thread, *saved_exception);
const String& message = String::Handle(
String::New("Exception was not thrown, internal error"));
return ApiError::New(message);
@@ -4437,7 +4438,8 @@ DART_EXPORT Dart_Handle Dart_SetField(Dart_Handle container,
// --- Exceptions ----
DART_EXPORT Dart_Handle Dart_ThrowException(Dart_Handle exception) {
- Isolate* isolate = Isolate::Current();
+ Thread* thread = Thread::Current();
+ Isolate* isolate = thread->isolate();
CHECK_ISOLATE(isolate);
CHECK_CALLBACK_STATE(isolate);
{
@@ -4464,14 +4466,15 @@ DART_EXPORT Dart_Handle Dart_ThrowException(Dart_Handle exception) {
state->UnwindScopes(isolate->top_exit_frame_info());
saved_exception = &Instance::Handle(raw_exception);
}
- Exceptions::Throw(isolate, *saved_exception);
+ Exceptions::Throw(thread, *saved_exception);
return Api::NewError("Exception was not thrown, internal error");
}
DART_EXPORT Dart_Handle Dart_ReThrowException(Dart_Handle exception,
Dart_Handle stacktrace) {
- Isolate* isolate = Isolate::Current();
+ Thread* thread = Thread::Current();
+ Isolate* isolate = thread->isolate();
CHECK_ISOLATE(isolate);
CHECK_CALLBACK_STATE(isolate);
{
@@ -4506,7 +4509,7 @@ DART_EXPORT Dart_Handle Dart_ReThrowException(Dart_Handle exception,
saved_exception = &Instance::Handle(raw_exception);
saved_stacktrace = &Stacktrace::Handle(raw_stacktrace);
}
- Exceptions::ReThrow(isolate, *saved_exception, *saved_stacktrace);
+ Exceptions::ReThrow(thread, *saved_exception, *saved_stacktrace);
return Api::NewError("Exception was not re thrown, internal error");
}
@@ -4598,7 +4601,7 @@ DART_EXPORT Dart_Handle Dart_SetNativeInstanceField(Dart_Handle obj,
DART_EXPORT void* Dart_GetNativeIsolateData(Dart_NativeArguments args) {
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
return isolate->init_callback_data();
}
@@ -4610,7 +4613,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeArguments(
const Dart_NativeArgument_Descriptor* argument_descriptors,
Dart_NativeArgument_Value* arg_values) {
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
- ASSERT(arguments->isolate() == Isolate::Current());
+ ASSERT(arguments->thread()->isolate() == Isolate::Current());
if (arg_values == NULL) {
RETURN_NULL_ERROR(arg_values);
}
@@ -4720,7 +4723,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeArguments(
}
case Dart_NativeArgument_kInstance: {
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
ASSERT(isolate->api_state() &&
isolate->api_state()->top_scope() != NULL);
@@ -4747,7 +4750,8 @@ DART_EXPORT Dart_Handle Dart_GetNativeArgument(Dart_NativeArguments args,
"%s: argument 'index' out of range. Expected 0..%d but saw %d.",
CURRENT_FUNC, arguments->NativeArgCount() - 1, index);
}
- return Api::NewHandle(arguments->isolate(), arguments->NativeArgAt(index));
+ return Api::NewHandle(arguments->thread()->isolate(),
+ arguments->NativeArgAt(index));
}
@@ -4783,7 +4787,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeFieldsOfArgument(
DART_EXPORT Dart_Handle Dart_GetNativeReceiver(Dart_NativeArguments args,
intptr_t* value) {
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
- ASSERT(arguments->isolate() == Isolate::Current());
+ ASSERT(arguments->thread()->isolate() == Isolate::Current());
if (value == NULL) {
RETURN_NULL_ERROR(value);
}
@@ -4865,7 +4869,7 @@ DART_EXPORT Dart_Handle Dart_GetNativeDoubleArgument(Dart_NativeArguments args,
DART_EXPORT void Dart_SetReturnValue(Dart_NativeArguments args,
Dart_Handle retval) {
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
- ASSERT(arguments->isolate() == Isolate::Current());
+ ASSERT(arguments->thread()->isolate() == Isolate::Current());
if ((retval != Api::Null()) && (!Api::IsInstance(retval))) {
const Object& ret_obj = Object::Handle(Api::UnwrapHandle(retval));
FATAL1("Return value check failed: saw '%s' expected a dart Instance.",
@@ -4880,7 +4884,7 @@ DART_EXPORT void Dart_SetWeakHandleReturnValue(Dart_NativeArguments args,
Dart_WeakPersistentHandle rval) {
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
#if defined(DEBUG)
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
ASSERT(isolate->api_state() != NULL &&
(isolate->api_state()->IsValidWeakPersistentHandle(rval) ||
@@ -4944,12 +4948,12 @@ DART_EXPORT void Dart_SetBooleanReturnValue(Dart_NativeArguments args,
DART_EXPORT void Dart_SetIntegerReturnValue(Dart_NativeArguments args,
int64_t retval) {
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
- ASSERT(arguments->isolate() == Isolate::Current());
+ ASSERT(arguments->thread()->isolate() == Isolate::Current());
if (Smi::IsValid(retval)) {
Api::SetSmiReturnValue(arguments, static_cast<intptr_t>(retval));
} else {
// Slow path for Mints and Bigints.
- ASSERT_CALLBACK_STATE(arguments->isolate());
+ ASSERT_CALLBACK_STATE(arguments->thread()->isolate());
Api::SetIntegerReturnValue(arguments, retval);
}
}
@@ -4959,7 +4963,7 @@ DART_EXPORT void Dart_SetDoubleReturnValue(Dart_NativeArguments args,
double retval) {
NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
#if defined(DEBUG)
- Isolate* isolate = arguments->isolate();
+ Isolate* isolate = arguments->thread()->isolate();
ASSERT(isolate == Isolate::Current());
ASSERT_CALLBACK_STATE(isolate);
#endif
« no previous file with comments | « runtime/vm/code_generator.cc ('k') | runtime/vm/exceptions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698