diff options
Diffstat (limited to 'runtime/runtime.h')
| -rw-r--r-- | runtime/runtime.h | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/runtime/runtime.h b/runtime/runtime.h index e7b71e29f5..6f15fcedf0 100644 --- a/runtime/runtime.h +++ b/runtime/runtime.h @@ -257,6 +257,13 @@ class Runtime { return instance_; } + // Set the current runtime to be the given instance. + // Note that this function is not responsible for cleaning up the old instance or taking the + // ownership of the new instance. + // + // For test use only. + static void TestOnlySetCurrent(Runtime* instance) { instance_ = instance; } + // Aborts semi-cleanly. Used in the implementation of LOG(FATAL), which most // callers should prefer. NO_RETURN static void Abort(const char* msg) REQUIRES(!Locks::abort_lock_); @@ -295,6 +302,11 @@ class Runtime { return boot_class_path_locations_.empty() ? boot_class_path_ : boot_class_path_locations_; } + // Dynamically add an element to boot class path. + void AppendToBootClassPath(const std::string& filename, + const std::string& location, + const std::vector<std::unique_ptr<const art::DexFile>>& dex_files); + const std::vector<int>& GetBootClassPathFds() const { return boot_class_path_fds_; } @@ -498,6 +510,10 @@ class Runtime { return OFFSETOF_MEMBER(Runtime, callee_save_methods_[static_cast<size_t>(type)]); } + static constexpr MemberOffset GetInstrumentationOffset() { + return MemberOffset(OFFSETOF_MEMBER(Runtime, instrumentation_)); + } + InstructionSet GetInstructionSet() const { return instruction_set_; } @@ -890,7 +906,8 @@ class Runtime { // Returns if the code can be deoptimized asynchronously. Code may be compiled with some // optimization that makes it impossible to deoptimize. - bool IsAsyncDeoptimizeable(uintptr_t code) const REQUIRES_SHARED(Locks::mutator_lock_); + bool IsAsyncDeoptimizeable(ArtMethod* method, uintptr_t code) const + REQUIRES_SHARED(Locks::mutator_lock_); // Returns a saved copy of the environment (getenv/setenv values). // Used by Fork to protect against overwriting LD_LIBRARY_PATH, etc. @@ -1073,6 +1090,10 @@ class Runtime { // image rather that an image loaded from disk. bool HasImageWithProfile() const; + bool GetNoSigChain() const { + return no_sig_chain_; + } + // Trigger a flag reload from system properties or device congfigs. // // Should only be called from runtime init and zygote post fork as @@ -1084,6 +1105,10 @@ class Runtime { // See Flags::ReloadAllFlags as well. static void ReloadAllFlags(const std::string& caller); + // Parses /apex/apex-info-list.xml to build a string containing apex versions of boot classpath + // jars, which is encoded into .oat files. + static std::string GetApexVersions(ArrayRef<const std::string> boot_class_path_locations); + private: static void InitPlatformSignalHandlers(); @@ -1124,8 +1149,7 @@ class Runtime { ThreadPool* AcquireThreadPool() REQUIRES(!Locks::runtime_thread_pool_lock_); void ReleaseThreadPool() REQUIRES(!Locks::runtime_thread_pool_lock_); - // Parses /apex/apex-info-list.xml to initialize a string containing versions - // of boot classpath jars and encoded into .oat files. + // Caches the apex versions produced by `GetApexVersions`. void InitializeApexVersions(); // A pointer to the active runtime or null. |