diff options
author | 2022-12-20 16:25:58 +0000 | |
---|---|---|
committer | 2023-01-17 10:15:09 +0000 | |
commit | d80bbba155fd18a38075cf6f626bee382c2b492c (patch) | |
tree | 90a0282dca2c05f3b3484d7e21de5d4b6213e5b7 /runtime/jni/java_vm_ext.h | |
parent | 9e3761d6b98e090cff2e30e0f5e9714f434dd0f2 (diff) |
Keep classes alive for stack traces with copied methods.
Test: Additional test in 141-class-unload.
Test: testrunner.py --host --optimizing
Bug: 263254495
Change-Id: Iea925ab96fb7c8d1b825c0b100e689ab722d3159
Diffstat (limited to 'runtime/jni/java_vm_ext.h')
-rw-r--r-- | runtime/jni/java_vm_ext.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/jni/java_vm_ext.h b/runtime/jni/java_vm_ext.h index 8c8b1b3177..7f4f5485b6 100644 --- a/runtime/jni/java_vm_ext.h +++ b/runtime/jni/java_vm_ext.h @@ -184,6 +184,11 @@ class JavaVMExt : public JavaVM { REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(Locks::jni_weak_globals_lock_); + // Decode weak global as strong. Use only if the target object is known to be alive. + ObjPtr<mirror::Object> DecodeWeakGlobalAsStrong(IndirectRef ref) + REQUIRES_SHARED(Locks::mutator_lock_) + REQUIRES(!Locks::jni_weak_globals_lock_); + // Like DecodeWeakGlobal() but to be used only during a runtime shutdown where self may be // null. ObjPtr<mirror::Object> DecodeWeakGlobalDuringShutdown(Thread* self, IndirectRef ref) |