Chromium Code Reviews| Index: runtime/bin/extensions_android.cc |
| diff --git a/runtime/bin/extensions_android.cc b/runtime/bin/extensions_android.cc |
| index 1b7999169d0bcdb309a67e975cd10519eedd6f2a..f45d8110f848e21f2a7ff9b24542e08deb3a681a 100644 |
| --- a/runtime/bin/extensions_android.cc |
| +++ b/runtime/bin/extensions_android.cc |
| @@ -2,6 +2,7 @@ |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| +#include "platform/assert.h" |
| #include "platform/globals.h" |
| #if defined(TARGET_OS_ANDROID) |
| @@ -15,15 +16,27 @@ namespace bin { |
| const char* kPrecompiledLibraryName = "libprecompiled.so"; |
| const char* kPrecompiledSymbolName = "_kInstructionsSnapshot"; |
| -void* Extensions::LoadExtensionLibrary(const char* library_file) { |
| - return dlopen(library_file, RTLD_LAZY); |
| +Dart_Handle Extensions::LoadExtensionLibrary(const char* library_file, |
| + void** library_handle) { |
| + ASSERT(library_handle != NULL); |
| + *library_handle = dlopen(library_file, RTLD_LAZY); |
| + if (*library_handle == NULL) { |
| + return Dart_NewApiError(dlerror()); |
| + } |
| + return Dart_Null(); |
| } |
| -void* Extensions::ResolveSymbol(void* lib_handle, const char* symbol) { |
| +Dart_Handle Extensions::ResolveSymbol(void* lib_handle, |
| + const char* symbol, |
| + void** init_function) { |
| + ASSERT(init_function != NULL); |
| dlerror(); |
| - void* result = dlsym(lib_handle, symbol); |
| - if (dlerror() != NULL) return NULL; |
| - return result; |
| + *init_function = dlsym(lib_handle, symbol); |
| + char* err_str = dlerror(); |
|
jamesr
2015/10/14 23:55:39
This produces the following error in the Flutter b
siva
2015/10/15 00:27:45
Will fix this in the Dart repo, I thought our warn
|
| + if (err_str != NULL) { |
| + return Dart_NewApiError(err_str); |
| + } |
| + return Dart_Null(); |
| } |
| } // namespace bin |