summaryrefslogtreecommitdiff
path: root/runtime/jni/java_vm_ext.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2022-12-20 16:25:58 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2023-01-17 10:15:09 +0000
commitd80bbba155fd18a38075cf6f626bee382c2b492c (patch)
tree90a0282dca2c05f3b3484d7e21de5d4b6213e5b7 /runtime/jni/java_vm_ext.h
parent9e3761d6b98e090cff2e30e0f5e9714f434dd0f2 (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.h5
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)