| Index: runtime/bin/builtin_common.cc
|
| diff --git a/runtime/bin/builtin_common.cc b/runtime/bin/builtin_common.cc
|
| index da754a5222d0d4842e7764b36fc5848f0c3be614..678e48b7163fac199fded9d936144649417ac2a6 100644
|
| --- a/runtime/bin/builtin_common.cc
|
| +++ b/runtime/bin/builtin_common.cc
|
| @@ -10,27 +10,37 @@
|
| #include "bin/dartutils.h"
|
| #include "bin/platform.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 {
|
|
|
| -void Builtin::SetLoadPort(Dart_Port port) {
|
| +Dart_Handle Builtin::SetLoadPort(Dart_Port port) {
|
| load_port_ = port;
|
| ASSERT(load_port_ != ILLEGAL_PORT);
|
| Dart_Handle field_name = DartUtils::NewString("_loadPort");
|
| - ASSERT(!Dart_IsError(field_name));
|
| + RETURN_IF_ERROR(field_name);
|
| Dart_Handle builtin_lib =
|
| Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
|
| - ASSERT(!Dart_IsError(builtin_lib));
|
| + RETURN_IF_ERROR(builtin_lib);
|
| Dart_Handle send_port = Dart_GetField(builtin_lib, field_name);
|
| - ASSERT(!Dart_IsError(send_port));
|
| + RETURN_IF_ERROR(send_port);
|
| if (!Dart_IsNull(send_port)) {
|
| // Already created and set.
|
| - return;
|
| + return Dart_True();
|
| }
|
| send_port = Dart_NewSendPort(load_port_);
|
| - ASSERT(!Dart_IsError(send_port));
|
| + RETURN_IF_ERROR(send_port);
|
| Dart_Handle result = Dart_SetField(builtin_lib, field_name, send_port);
|
| - ASSERT(!Dart_IsError(result));
|
| + RETURN_IF_ERROR(result);
|
| + return Dart_True();
|
| }
|
|
|
| } // namespace bin
|
|
|