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_test.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'runtime/class_linker_test.cc') diff --git a/runtime/class_linker_test.cc b/runtime/class_linker_test.cc index 5dc194f3ee..691fcf1293 100644 --- a/runtime/class_linker_test.cc +++ b/runtime/class_linker_test.cc @@ -815,6 +815,13 @@ struct FieldVarHandleOffsets : public CheckOffsets { } }; +struct StaticFieldVarHandleOffsets : public CheckOffsets { + StaticFieldVarHandleOffsets() : CheckOffsets( + false, "Ljava/lang/invoke/StaticFieldVarHandle;") { + addOffset(OFFSETOF_MEMBER(mirror::StaticFieldVarHandle, declaring_class_), "declaringClass"); + } +}; + struct ArrayElementVarHandleOffsets : public CheckOffsets { ArrayElementVarHandleOffsets() : CheckOffsets( false, "Ljava/lang/invoke/ArrayElementVarHandle;") { -- cgit v1.2.3-59-g8ed1b