From 0280e5d21e387812b7a1719d75ef2e3a94280c60 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Thu, 27 Aug 2020 17:36:24 +0100 Subject: Optimizing: Improve generated code for HLoadClass... ... for resolved package-private class accessed from unresolved compiling class in the same package. Test: Additional tests in 727-checker-unresolved-class. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 161898207 Change-Id: I215dcd9db2297f5c8d9547635d80975d88534579 --- compiler/optimizing/instruction_builder.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'compiler/optimizing/instruction_builder.cc') diff --git a/compiler/optimizing/instruction_builder.cc b/compiler/optimizing/instruction_builder.cc index 1aef100a89..2da19ba696 100644 --- a/compiler/optimizing/instruction_builder.cc +++ b/compiler/optimizing/instruction_builder.cc @@ -2419,9 +2419,11 @@ bool HInstructionBuilder::LoadClassNeedsAccessCheck(ObjPtr klass) return true; } else if (klass->IsPublic()) { return false; + } else if (dex_compilation_unit_->GetCompilingClass() != nullptr) { + return !dex_compilation_unit_->GetCompilingClass()->CanAccess(klass); } else { - ObjPtr compiling_class = dex_compilation_unit_->GetCompilingClass().Get(); - return compiling_class == nullptr || !compiling_class->CanAccess(klass); + SamePackageCompare same_package(*dex_compilation_unit_); + return !same_package(klass); } } -- cgit v1.2.3-59-g8ed1b