From 849d09a81907f16d8ccc6019b8baf86a304b730c Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Mon, 21 Nov 2022 16:50:32 +0100 Subject: Split local reference table out of `IndirectReferenceTable`. In preparation for rewriting the representation of local JNI references, split their implementation out of the shared `IndirectReferenceTable` which shall be used only for global and weak global references going forward. Make the new `LocalReferenceTable` always resizable (remove the enum `ResizableCapacity`) and rename the memory mappings for LRT to "local ref table". Remove `IndirectReferenceTable` code that was needed only for local references, make these tables non-resizable. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 172332525 Change-Id: I87f02c93694577d1b577c4114fa86c2cd23b4c97 --- runtime/jni/jni_env_ext.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'runtime/jni/jni_env_ext.cc') diff --git a/runtime/jni/jni_env_ext.cc b/runtime/jni/jni_env_ext.cc index 7d522c15ee..619e1de98e 100644 --- a/runtime/jni/jni_env_ext.cc +++ b/runtime/jni/jni_env_ext.cc @@ -69,8 +69,8 @@ JNIEnvExt* JNIEnvExt::Create(Thread* self_in, JavaVMExt* vm_in, std::string* err JNIEnvExt::JNIEnvExt(Thread* self_in, JavaVMExt* vm_in) : self_(self_in), vm_(vm_in), - local_ref_cookie_(kIRTFirstSegment), - locals_(kLocal, IndirectReferenceTable::ResizableCapacity::kYes), + local_ref_cookie_(jni::kLRTFirstSegment), + locals_(), monitors_("monitors", kMonitorsInitial, kMonitorsMax), critical_(0), check_jni_(false), @@ -154,7 +154,7 @@ MemberOffset JNIEnvExt::SegmentStateOffset(size_t pointer_size) { 4 + // local_ref_cookie. (pointer_size - 4); // Padding. size_t irt_segment_state_offset = - IndirectReferenceTable::SegmentStateOffset(pointer_size).Int32Value(); + jni::LocalReferenceTable::SegmentStateOffset(pointer_size).Int32Value(); return MemberOffset(locals_offset + irt_segment_state_offset); } -- cgit v1.2.3-59-g8ed1b