| Index: runtime/vm/bootstrap_natives.cc
|
| diff --git a/runtime/vm/bootstrap_natives.cc b/runtime/vm/bootstrap_natives.cc
|
| index 4682e987312524ecd8fe7ae2002ca960ed25b783..3ed1400ed53189fd33672b515d1079cb454f2b74 100644
|
| --- a/runtime/vm/bootstrap_natives.cc
|
| +++ b/runtime/vm/bootstrap_natives.cc
|
| @@ -53,39 +53,62 @@ Dart_NativeFunction BootstrapNatives::Lookup(Dart_Handle name,
|
| }
|
|
|
|
|
| +const char* BootstrapNatives::ReverseLookup(Dart_NativeFunction* nf) {
|
| + int num_entries = sizeof(BootStrapEntries) / sizeof(struct NativeEntries);
|
| + for (int i = 0; i < num_entries; i++) {
|
| + struct NativeEntries* entry = &(BootStrapEntries[i]);
|
| + if (reinterpret_cast<Dart_NativeFunction*>(entry->function_) == nf) {
|
| + return entry->name_;
|
| + }
|
| + }
|
| + return NULL;
|
| +}
|
| +
|
| +
|
| void Bootstrap::SetupNativeResolver() {
|
| Library& library = Library::Handle();
|
|
|
| Dart_NativeEntryResolver resolver =
|
| reinterpret_cast<Dart_NativeEntryResolver>(BootstrapNatives::Lookup);
|
|
|
| + Dart_NativeEntryReverseResolver reverse_resolver =
|
| + reinterpret_cast<Dart_NativeEntryReverseResolver>(
|
| + BootstrapNatives::ReverseLookup);
|
| +
|
| library = Library::AsyncLibrary();
|
| ASSERT(!library.IsNull());
|
| library.set_native_entry_resolver(resolver);
|
| + library.set_native_entry_reverse_resolver(reverse_resolver);
|
|
|
| library = Library::CoreLibrary();
|
| ASSERT(!library.IsNull());
|
| library.set_native_entry_resolver(resolver);
|
| + library.set_native_entry_reverse_resolver(reverse_resolver);
|
|
|
| library = Library::MathLibrary();
|
| ASSERT(!library.IsNull());
|
| library.set_native_entry_resolver(resolver);
|
| + library.set_native_entry_reverse_resolver(reverse_resolver);
|
|
|
| library = Library::MirrorsLibrary();
|
| ASSERT(!library.IsNull());
|
| library.set_native_entry_resolver(resolver);
|
| + library.set_native_entry_reverse_resolver(reverse_resolver);
|
|
|
| library = Library::InternalLibrary();
|
| ASSERT(!library.IsNull());
|
| library.set_native_entry_resolver(resolver);
|
| + library.set_native_entry_reverse_resolver(reverse_resolver);
|
|
|
| library = Library::IsolateLibrary();
|
| ASSERT(!library.IsNull());
|
| library.set_native_entry_resolver(resolver);
|
| + library.set_native_entry_reverse_resolver(reverse_resolver);
|
|
|
| library = Library::TypedDataLibrary();
|
| ASSERT(!library.IsNull());
|
| library.set_native_entry_resolver(resolver);
|
| + library.set_native_entry_reverse_resolver(reverse_resolver);
|
| }
|
|
|
|
|
|
|