| Index: runtime/bin/dartutils.cc
|
| diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc
|
| index 8e59a77fd4ecd0d99bee4aad7d923d00a3a7c4bc..dd63bec000de6c79ed7a318f7d4231b0924039fb 100644
|
| --- a/runtime/bin/dartutils.cc
|
| +++ b/runtime/bin/dartutils.cc
|
| @@ -21,15 +21,6 @@
|
| #include "bin/socket.h"
|
| #include "bin/utils.h"
|
|
|
| -// Return the error from the containing function if handle is in error handle.
|
| -#define RETURN_IF_ERROR(handle) \
|
| - { \
|
| - Dart_Handle __handle = handle; \
|
| - if (Dart_IsError((__handle))) { \
|
| - return __handle; \
|
| - } \
|
| - }
|
| -
|
| namespace dart {
|
| namespace bin {
|
|
|
| @@ -392,7 +383,7 @@ Dart_Handle DartUtils::LibraryTagHandler(Dart_LibraryTag tag,
|
| // Resolve the url within the context of the library's URL.
|
| Dart_Handle builtin_lib =
|
| Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
|
| - RETURN_IF_ERROR(builtin_lib);
|
| + DART_CHECK_VALID(builtin_lib);
|
| return ResolveUri(library_url, url, builtin_lib);
|
| }
|
|
|
| @@ -432,7 +423,7 @@ Dart_Handle DartUtils::LibraryTagHandler(Dart_LibraryTag tag,
|
|
|
| Dart_Handle builtin_lib =
|
| Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
|
| - RETURN_IF_ERROR(builtin_lib);
|
| + DART_CHECK_VALID(builtin_lib);
|
| if (DartUtils::IsDartExtensionSchemeURL(url_string)) {
|
| // Load a native code shared library to use in a native extension
|
| if (tag != Dart_kImportTag) {
|
| @@ -578,9 +569,7 @@ void FUNCTION_NAME(Builtin_LoadSource)(Dart_NativeArguments args) {
|
| } else {
|
| ASSERT(tag == Dart_kSourceTag);
|
| Dart_Handle library = Dart_LookupLibrary(library_uri);
|
| - if (Dart_IsError(library)) {
|
| - Dart_PropagateError(library);
|
| - }
|
| + DART_CHECK_VALID(library);
|
| result = Dart_LoadSource(library, resolved_script_uri, source, 0, 0);
|
| }
|
| }
|
| @@ -646,24 +635,24 @@ Dart_Handle DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib,
|
| // Setup the internal library's 'internalPrint' function.
|
| Dart_Handle print = Dart_Invoke(
|
| builtin_lib, NewString("_getPrintClosure"), 0, NULL);
|
| - RETURN_IF_ERROR(print);
|
| + DART_CHECK_VALID(print);
|
| Dart_Handle result =
|
| Dart_SetField(internal_lib, NewString("_printClosure"), print);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
|
|
| if (!is_service_isolate) {
|
| if (IsWindowsHost()) {
|
| result = Dart_SetField(builtin_lib, NewString("_isWindows"), Dart_True());
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| }
|
| if (trace_loading) {
|
| result = Dart_SetField(builtin_lib,
|
| NewString("_traceLoading"), Dart_True());
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| }
|
| // Set current working directory.
|
| result = SetWorkingDirectory(builtin_lib);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| // Wait for the service isolate to initialize the load port.
|
| Dart_Port load_port = Dart_ServiceWaitForLoadPort();
|
| if (load_port == ILLEGAL_PORT) {
|
| @@ -676,7 +665,7 @@ Dart_Handle DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib,
|
| if (package_root != NULL) {
|
| ASSERT(packages_file == NULL);
|
| result = NewString(package_root);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| const int kNumArgs = 1;
|
| Dart_Handle dart_args[kNumArgs];
|
| dart_args[0] = result;
|
| @@ -684,10 +673,10 @@ Dart_Handle DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib,
|
| NewString("_setPackageRoot"),
|
| kNumArgs,
|
| dart_args);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| } else if (packages_file != NULL) {
|
| result = NewString(packages_file);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| const int kNumArgs = 1;
|
| Dart_Handle dart_args[kNumArgs];
|
| dart_args[0] = result;
|
| @@ -695,48 +684,47 @@ Dart_Handle DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib,
|
| NewString("_loadPackagesMap"),
|
| kNumArgs,
|
| dart_args);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| }
|
| return Dart_True();
|
| }
|
|
|
|
|
| -Dart_Handle DartUtils::PrepareCoreLibrary(Dart_Handle core_lib,
|
| - Dart_Handle builtin_lib,
|
| - bool is_service_isolate) {
|
| +void DartUtils::PrepareCoreLibrary(Dart_Handle core_lib,
|
| + Dart_Handle builtin_lib,
|
| + bool is_service_isolate) {
|
| if (!is_service_isolate) {
|
| // Setup the 'Uri.base' getter in dart:core.
|
| Dart_Handle uri_base = Dart_Invoke(
|
| builtin_lib, NewString("_getUriBaseClosure"), 0, NULL);
|
| - RETURN_IF_ERROR(uri_base);
|
| + DART_CHECK_VALID(uri_base);
|
| Dart_Handle result = Dart_SetField(core_lib,
|
| NewString("_uriBaseClosure"),
|
| uri_base);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
| }
|
| - return Dart_True();
|
| }
|
|
|
|
|
| -Dart_Handle DartUtils::PrepareAsyncLibrary(Dart_Handle async_lib,
|
| - Dart_Handle isolate_lib) {
|
| +void DartUtils::PrepareAsyncLibrary(Dart_Handle async_lib,
|
| + Dart_Handle isolate_lib) {
|
| Dart_Handle schedule_immediate_closure =
|
| Dart_Invoke(isolate_lib, NewString("_getIsolateScheduleImmediateClosure"),
|
| 0, NULL);
|
| Dart_Handle args[1];
|
| args[0] = schedule_immediate_closure;
|
| - return Dart_Invoke(
|
| - async_lib, NewString("_setScheduleImmediateClosure"), 1, args);
|
| + DART_CHECK_VALID(Dart_Invoke(
|
| + async_lib, NewString("_setScheduleImmediateClosure"), 1, args));
|
| }
|
|
|
|
|
| -Dart_Handle DartUtils::PrepareIOLibrary(Dart_Handle io_lib) {
|
| - return Dart_Invoke(io_lib, NewString("_setupHooks"), 0, NULL);
|
| +void DartUtils::PrepareIOLibrary(Dart_Handle io_lib) {
|
| + DART_CHECK_VALID(Dart_Invoke(io_lib, NewString("_setupHooks"), 0, NULL));
|
| }
|
|
|
|
|
| -Dart_Handle DartUtils::PrepareIsolateLibrary(Dart_Handle isolate_lib) {
|
| - return Dart_Invoke(isolate_lib, NewString("_setupHooks"), 0, NULL);
|
| +void DartUtils::PrepareIsolateLibrary(Dart_Handle isolate_lib) {
|
| + DART_CHECK_VALID(Dart_Invoke(isolate_lib, NewString("_setupHooks"), 0, NULL));
|
| }
|
|
|
|
|
| @@ -747,28 +735,28 @@ Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root,
|
| Dart_Handle builtin_lib) {
|
| // First ensure all required libraries are available.
|
| Dart_Handle url = NewString(kCoreLibURL);
|
| - RETURN_IF_ERROR(url);
|
| + DART_CHECK_VALID(url);
|
| Dart_Handle core_lib = Dart_LookupLibrary(url);
|
| - RETURN_IF_ERROR(core_lib);
|
| + DART_CHECK_VALID(core_lib);
|
| url = NewString(kAsyncLibURL);
|
| - RETURN_IF_ERROR(url);
|
| + DART_CHECK_VALID(url);
|
| Dart_Handle async_lib = Dart_LookupLibrary(url);
|
| - RETURN_IF_ERROR(async_lib);
|
| + DART_CHECK_VALID(async_lib);
|
| url = NewString(kIsolateLibURL);
|
| - RETURN_IF_ERROR(url);
|
| + DART_CHECK_VALID(url);
|
| Dart_Handle isolate_lib = Dart_LookupLibrary(url);
|
| - RETURN_IF_ERROR(isolate_lib);
|
| + DART_CHECK_VALID(isolate_lib);
|
| url = NewString(kInternalLibURL);
|
| - RETURN_IF_ERROR(url);
|
| + DART_CHECK_VALID(url);
|
| Dart_Handle internal_lib = Dart_LookupLibrary(url);
|
| - RETURN_IF_ERROR(internal_lib);
|
| + DART_CHECK_VALID(internal_lib);
|
| Dart_Handle io_lib = Builtin::LoadAndCheckLibrary(Builtin::kIOLibrary);
|
| - RETURN_IF_ERROR(io_lib);
|
| + DART_CHECK_VALID(io_lib);
|
|
|
| // We need to ensure that all the scripts loaded so far are finalized
|
| // as we are about to invoke some Dart code below to setup closures.
|
| Dart_Handle result = Dart_FinalizeLoading(false);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
|
|
| result = PrepareBuiltinLibrary(builtin_lib,
|
| internal_lib,
|
| @@ -776,32 +764,30 @@ Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root,
|
| trace_loading,
|
| package_root,
|
| packages_file);
|
| - RETURN_IF_ERROR(result);
|
| + DART_CHECK_VALID(result);
|
|
|
| - RETURN_IF_ERROR(PrepareAsyncLibrary(async_lib, isolate_lib));
|
| - RETURN_IF_ERROR(PrepareCoreLibrary(
|
| - core_lib, builtin_lib, is_service_isolate));
|
| - RETURN_IF_ERROR(PrepareIsolateLibrary(isolate_lib));
|
| - RETURN_IF_ERROR(PrepareIOLibrary(io_lib));
|
| + PrepareAsyncLibrary(async_lib, isolate_lib);
|
| + PrepareCoreLibrary(core_lib, builtin_lib, is_service_isolate);
|
| + PrepareIsolateLibrary(isolate_lib);
|
| + PrepareIOLibrary(io_lib);
|
| return result;
|
| }
|
|
|
|
|
| -Dart_Handle DartUtils::SetupIOLibrary(const char* script_uri) {
|
| +void DartUtils::SetupIOLibrary(const char* script_uri) {
|
| Dart_Handle io_lib_url = NewString(kIOLibURL);
|
| - RETURN_IF_ERROR(io_lib_url);
|
| + DART_CHECK_VALID(io_lib_url);
|
| Dart_Handle io_lib = Dart_LookupLibrary(io_lib_url);
|
| - RETURN_IF_ERROR(io_lib);
|
| + DART_CHECK_VALID(io_lib);
|
| Dart_Handle platform_type = GetDartType(DartUtils::kIOLibURL, "_Platform");
|
| - RETURN_IF_ERROR(platform_type);
|
| + DART_CHECK_VALID(platform_type);
|
| Dart_Handle script_name = NewString("_nativeScript");
|
| - RETURN_IF_ERROR(script_name);
|
| + DART_CHECK_VALID(script_name);
|
| Dart_Handle dart_script = NewString(script_uri);
|
| - RETURN_IF_ERROR(dart_script);
|
| + DART_CHECK_VALID(dart_script);
|
| Dart_Handle set_script_name =
|
| Dart_SetField(platform_type, script_name, dart_script);
|
| - RETURN_IF_ERROR(set_script_name);
|
| - return Dart_Null();
|
| + DART_CHECK_VALID(set_script_name);
|
| }
|
|
|
|
|
|
|