From dd411969bb486c36081926d61dbcc0bfbc8066a5 Mon Sep 17 00:00:00 2001 From: Orion Hodson Date: Fri, 25 Jun 2021 08:55:22 +0100 Subject: VarHandle: add StaticFieldVarHandle class Add StaticFieldVarHandle class to keep a live reference to the declaring class for the target field of VarHandle's targeting static fields. Bug: 191980149 Test: art/test.py --host -r -g Change-Id: I3a1cada6591d146b8f9fc9066105e3b617290185 --- runtime/class_linker.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'runtime/class_linker.cc') diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc index f3f7afdc3e..0563f3830b 100644 --- a/runtime/class_linker.cc +++ b/runtime/class_linker.cc @@ -969,6 +969,11 @@ bool ClassLinker::InitWithoutImage(std::vector> b CHECK(class_root != nullptr); SetClassRoot(ClassRoot::kJavaLangInvokeFieldVarHandle, class_root); + // Create java.lang.invoke.StaticFieldVarHandle.class root + class_root = FindSystemClass(self, "Ljava/lang/invoke/StaticFieldVarHandle;"); + CHECK(class_root != nullptr); + SetClassRoot(ClassRoot::kJavaLangInvokeStaticFieldVarHandle, class_root); + // Create java.lang.invoke.ArrayElementVarHandle.class root class_root = FindSystemClass(self, "Ljava/lang/invoke/ArrayElementVarHandle;"); CHECK(class_root != nullptr); -- cgit v1.2.3-59-g8ed1b