... even if the string is empty. This will initialize the native bridge
library but mark it as unavailable.
- also, rename native_bridge_library_path to
native_bridge_library_filename to be closer to the actual meaning (it's
just the filename without any path).
Bug:
16404669
(cherry picked from commit I94628639691459d48d1fbf0841f36b68d51818e7)
Change-Id: I94628639691459d48d1fbf0841f36b68d51818e7
return false;
}
} else if (StartsWith(option, "-XX:NativeBridge=")) {
- if (!ParseStringAfterChar(option, '=', &native_bridge_library_path_)) {
+ if (!ParseStringAfterChar(option, '=', &native_bridge_library_filename_)) {
return false;
}
} else if (StartsWith(option, "-ea") ||
bool check_jni_;
bool force_copy_;
std::string jni_trace_;
- std::string native_bridge_library_path_;
+ std::string native_bridge_library_filename_;
CompilerCallbacks* compiler_callbacks_;
bool is_zygote_;
bool must_relocate_;
self->ClearException();
// Look for a native bridge.
- native_bridge_library_path_ = options->native_bridge_library_path_;
- if (!native_bridge_library_path_.empty()) {
- android::SetupNativeBridge(native_bridge_library_path_.c_str(), &native_bridge_art_callbacks_);
- VLOG(startup) << "Runtime::Setup native bridge library: " << native_bridge_library_path_;
- }
+ native_bridge_library_filename_ = options->native_bridge_library_filename_;
+ android::SetupNativeBridge(native_bridge_library_filename_.c_str(), &native_bridge_art_callbacks_);
+ VLOG(startup) << "Runtime::Setup native bridge library: "
+ << (native_bridge_library_filename_.empty() ?
+ "(empty)" : native_bridge_library_filename_);
+
VLOG(startup) << "Runtime::Init exiting";
return true;
}
bool implicit_so_checks_; // StackOverflow checks are implicit.
bool implicit_suspend_checks_; // Thread suspension checks are implicit.
- // The path to the native bridge library. If this is not empty the native bridge will be
- // initialized and loaded from the pointed path.
+ // The filename to the native bridge library. If this is not empty the native bridge will be
+ // initialized and loaded from the given file (initialized and available). An empty value means
+ // that there's no native bridge (initialized but not available).
//
// The native bridge allows running native code compiled for a foreign ISA. The way it works is,
// if standard dlopen fails to load native library associated with native activity, it calls to
// the native bridge to load it and then gets the trampoline for the entry to native activity.
- std::string native_bridge_library_path_;
+ std::string native_bridge_library_filename_;
// Native bridge library runtime callbacks. They represent the runtime interface to native bridge.
//