summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/art_field.h4
-rw-r--r--runtime/art_method-inl.h16
-rw-r--r--runtime/art_method.cc4
-rw-r--r--runtime/art_method.h2
-rw-r--r--runtime/class_linker.cc8
-rw-r--r--runtime/hidden_api.cc19
-rw-r--r--runtime/hidden_api.h14
-rw-r--r--runtime/hidden_api_test.cc32
8 files changed, 49 insertions, 50 deletions
diff --git a/runtime/art_field.h b/runtime/art_field.h
index 5afd000b05..dc7f985b91 100644
--- a/runtime/art_field.h
+++ b/runtime/art_field.h
@@ -180,8 +180,8 @@ class ArtField final {
return (GetAccessFlags() & kAccVolatile) != 0;
}
- HiddenApiAccessFlags::ApiList GetHiddenApiAccessFlags() REQUIRES_SHARED(Locks::mutator_lock_) {
- return HiddenApiAccessFlags::DecodeFromRuntime(GetAccessFlags());
+ hiddenapi::ApiList GetHiddenApiAccessFlags() REQUIRES_SHARED(Locks::mutator_lock_) {
+ return hiddenapi::DecodeFromRuntime(GetAccessFlags());
}
// Returns an instance field with this offset in the given class or null if not found.
diff --git a/runtime/art_method-inl.h b/runtime/art_method-inl.h
index f693524a6c..e9c17eeab5 100644
--- a/runtime/art_method-inl.h
+++ b/runtime/art_method-inl.h
@@ -367,7 +367,7 @@ inline bool ArtMethod::HasSingleImplementation() {
return (GetAccessFlags() & kAccSingleImplementation) != 0;
}
-inline HiddenApiAccessFlags::ApiList ArtMethod::GetHiddenApiAccessFlags()
+inline hiddenapi::ApiList ArtMethod::GetHiddenApiAccessFlags()
REQUIRES_SHARED(Locks::mutator_lock_) {
if (UNLIKELY(IsIntrinsic())) {
switch (static_cast<Intrinsics>(GetIntrinsic())) {
@@ -407,7 +407,7 @@ inline HiddenApiAccessFlags::ApiList ArtMethod::GetHiddenApiAccessFlags()
// Note that the DCHECK currently won't fail if the dex methods are
// whitelisted, e.g. in the core image (b/77733081). As a result, we
// might print warnings but we won't change the semantics.
- return HiddenApiAccessFlags::kLightGreylist;
+ return hiddenapi::ApiList::kLightGreylist;
case Intrinsics::kStringNewStringFromBytes:
case Intrinsics::kStringNewStringFromChars:
case Intrinsics::kStringNewStringFromString:
@@ -417,7 +417,7 @@ inline HiddenApiAccessFlags::ApiList ArtMethod::GetHiddenApiAccessFlags()
case Intrinsics::kMemoryPokeIntNative:
case Intrinsics::kMemoryPokeLongNative:
case Intrinsics::kMemoryPokeShortNative:
- return HiddenApiAccessFlags::kDarkGreylist;
+ return hiddenapi::ApiList::kDarkGreylist;
case Intrinsics::kVarHandleFullFence:
case Intrinsics::kVarHandleAcquireFence:
case Intrinsics::kVarHandleReleaseFence:
@@ -460,13 +460,13 @@ inline HiddenApiAccessFlags::ApiList ArtMethod::GetHiddenApiAccessFlags()
// whitelisted, e.g. in the core image (b/77733081). Given that they are
// exclusively VarHandle intrinsics, they should not be used outside
// tests that do not enable hidden API checks.
- return HiddenApiAccessFlags::kBlacklist;
+ return hiddenapi::ApiList::kBlacklist;
default:
// Remaining intrinsics are public API. We DCHECK that in SetIntrinsic().
- return HiddenApiAccessFlags::kWhitelist;
+ return hiddenapi::ApiList::kWhitelist;
}
} else {
- return HiddenApiAccessFlags::DecodeFromRuntime(GetAccessFlags());
+ return hiddenapi::DecodeFromRuntime(GetAccessFlags());
}
}
@@ -492,7 +492,7 @@ inline void ArtMethod::SetIntrinsic(uint32_t intrinsic) {
bool is_default_conflict = IsDefaultConflicting();
bool is_compilable = IsCompilable();
bool must_count_locks = MustCountLocks();
- HiddenApiAccessFlags::ApiList hidden_api_flags = GetHiddenApiAccessFlags();
+ hiddenapi::ApiList hidden_api_flags = GetHiddenApiAccessFlags();
SetAccessFlags(new_value);
DCHECK_EQ(java_flags, (GetAccessFlags() & kAccJavaFlagsMask));
DCHECK_EQ(is_constructor, IsConstructor());
@@ -512,7 +512,7 @@ inline void ArtMethod::SetIntrinsic(uint32_t intrinsic) {
// these because (a) warnings on greylist do not change semantics, and
// (b) only VarHandle intrinsics are blacklisted at the moment and they
// should not be used outside tests with disabled API checks.
- if (hidden_api_flags != HiddenApiAccessFlags::kWhitelist) {
+ if (hidden_api_flags != hiddenapi::ApiList::kWhitelist) {
DCHECK_EQ(hidden_api_flags, GetHiddenApiAccessFlags()) << PrettyMethod();
}
} else {
diff --git a/runtime/art_method.cc b/runtime/art_method.cc
index 4a19b108ab..9bf31edd52 100644
--- a/runtime/art_method.cc
+++ b/runtime/art_method.cc
@@ -688,13 +688,13 @@ void ArtMethod::SetNotIntrinsic() {
}
// Query the hidden API access flags of the intrinsic.
- HiddenApiAccessFlags::ApiList intrinsic_api_list = GetHiddenApiAccessFlags();
+ hiddenapi::ApiList intrinsic_api_list = GetHiddenApiAccessFlags();
// Clear intrinsic-related access flags.
ClearAccessFlags(kAccIntrinsic | kAccIntrinsicBits);
// Re-apply hidden API access flags now that the method is not an intrinsic.
- SetAccessFlags(HiddenApiAccessFlags::EncodeForRuntime(GetAccessFlags(), intrinsic_api_list));
+ SetAccessFlags(hiddenapi::EncodeForRuntime(GetAccessFlags(), intrinsic_api_list));
DCHECK_EQ(GetHiddenApiAccessFlags(), intrinsic_api_list);
}
diff --git a/runtime/art_method.h b/runtime/art_method.h
index 18ddcc05c5..e56f3fd6bc 100644
--- a/runtime/art_method.h
+++ b/runtime/art_method.h
@@ -326,7 +326,7 @@ class ArtMethod final {
AddAccessFlags(kAccMustCountLocks);
}
- HiddenApiAccessFlags::ApiList GetHiddenApiAccessFlags() REQUIRES_SHARED(Locks::mutator_lock_);
+ hiddenapi::ApiList GetHiddenApiAccessFlags() REQUIRES_SHARED(Locks::mutator_lock_);
// Returns true if this method could be overridden by a default method.
bool IsOverridableByDefaultMethod() REQUIRES_SHARED(Locks::mutator_lock_);
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index 0247e4e076..151f7b8565 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -3395,8 +3395,8 @@ void ClassLinker::LoadField(const ClassAccessor::Field& field,
// also set its runtime hidden API access flags.
uint32_t access_flags = field.GetAccessFlags();
if (klass->IsBootStrapClassLoaded()) {
- access_flags = HiddenApiAccessFlags::EncodeForRuntime(
- access_flags, static_cast<HiddenApiAccessFlags::ApiList>(field.GetHiddenapiFlags()));
+ access_flags = hiddenapi::EncodeForRuntime(
+ access_flags, static_cast<hiddenapi::ApiList>(field.GetHiddenapiFlags()));
}
dst->SetAccessFlags(access_flags);
}
@@ -3418,8 +3418,8 @@ void ClassLinker::LoadMethod(const DexFile& dex_file,
// also set its runtime hidden API access flags.
uint32_t access_flags = method.GetAccessFlags();
if (klass->IsBootStrapClassLoaded()) {
- access_flags = HiddenApiAccessFlags::EncodeForRuntime(
- access_flags, static_cast<HiddenApiAccessFlags::ApiList>(method.GetHiddenapiFlags()));
+ access_flags = hiddenapi::EncodeForRuntime(
+ access_flags, static_cast<hiddenapi::ApiList>(method.GetHiddenapiFlags()));
}
if (UNLIKELY(strcmp("finalize", method_name) == 0)) {
diff --git a/runtime/hidden_api.cc b/runtime/hidden_api.cc
index 5729800bb0..f3552765c5 100644
--- a/runtime/hidden_api.cc
+++ b/runtime/hidden_api.cc
@@ -60,14 +60,14 @@ static inline std::ostream& operator<<(std::ostream& os, AccessMethod value) {
return os;
}
-static constexpr bool EnumsEqual(EnforcementPolicy policy, HiddenApiAccessFlags::ApiList apiList) {
+static constexpr bool EnumsEqual(EnforcementPolicy policy, hiddenapi::ApiList apiList) {
return static_cast<int>(policy) == static_cast<int>(apiList);
}
// GetMemberAction-related static_asserts.
static_assert(
- EnumsEqual(EnforcementPolicy::kDarkGreyAndBlackList, HiddenApiAccessFlags::kDarkGreylist) &&
- EnumsEqual(EnforcementPolicy::kBlacklistOnly, HiddenApiAccessFlags::kBlacklist),
+ EnumsEqual(EnforcementPolicy::kDarkGreyAndBlackList, hiddenapi::ApiList::kDarkGreylist) &&
+ EnumsEqual(EnforcementPolicy::kBlacklistOnly, hiddenapi::ApiList::kBlacklist),
"Mismatch between EnforcementPolicy and ApiList enums");
static_assert(
EnforcementPolicy::kJustWarn < EnforcementPolicy::kDarkGreyAndBlackList &&
@@ -133,8 +133,7 @@ void MemberSignature::Dump(std::ostream& os) const {
}
}
-void MemberSignature::WarnAboutAccess(AccessMethod access_method,
- HiddenApiAccessFlags::ApiList list) {
+void MemberSignature::WarnAboutAccess(AccessMethod access_method, hiddenapi::ApiList list) {
LOG(WARNING) << "Accessing hidden " << (type_ == kField ? "field " : "method ")
<< Dumpable<MemberSignature>(*this) << " (" << list << ", " << access_method << ")";
}
@@ -200,14 +199,14 @@ template<typename T>
static ALWAYS_INLINE void MaybeWhitelistMember(Runtime* runtime, T* member)
REQUIRES_SHARED(Locks::mutator_lock_) {
if (CanUpdateMemberAccessFlags(member) && runtime->ShouldDedupeHiddenApiWarnings()) {
- member->SetAccessFlags(HiddenApiAccessFlags::EncodeForRuntime(
- member->GetAccessFlags(), HiddenApiAccessFlags::kWhitelist));
+ member->SetAccessFlags(hiddenapi::EncodeForRuntime(
+ member->GetAccessFlags(), hiddenapi::ApiList::kWhitelist));
}
}
template<typename T>
Action GetMemberActionImpl(T* member,
- HiddenApiAccessFlags::ApiList api_list,
+ hiddenapi::ApiList api_list,
Action action,
AccessMethod access_method) {
DCHECK_NE(action, kAllow);
@@ -276,11 +275,11 @@ Action GetMemberActionImpl(T* member,
// Need to instantiate this.
template Action GetMemberActionImpl<ArtField>(ArtField* member,
- HiddenApiAccessFlags::ApiList api_list,
+ hiddenapi::ApiList api_list,
Action action,
AccessMethod access_method);
template Action GetMemberActionImpl<ArtMethod>(ArtMethod* member,
- HiddenApiAccessFlags::ApiList api_list,
+ hiddenapi::ApiList api_list,
Action action,
AccessMethod access_method);
} // namespace detail
diff --git a/runtime/hidden_api.h b/runtime/hidden_api.h
index c16e7f347e..57f1a599cf 100644
--- a/runtime/hidden_api.h
+++ b/runtime/hidden_api.h
@@ -68,8 +68,8 @@ enum AccessContextFlags {
kAccessDenied = 1 << 1,
};
-inline Action GetActionFromAccessFlags(HiddenApiAccessFlags::ApiList api_list) {
- if (api_list == HiddenApiAccessFlags::kWhitelist) {
+inline Action GetActionFromAccessFlags(ApiList api_list) {
+ if (api_list == ApiList::kWhitelist) {
return kAllow;
}
@@ -85,9 +85,9 @@ inline Action GetActionFromAccessFlags(HiddenApiAccessFlags::ApiList api_list) {
}
DCHECK(policy >= EnforcementPolicy::kDarkGreyAndBlackList);
// The logic below relies on equality of values in the enums EnforcementPolicy and
- // HiddenApiAccessFlags::ApiList, and their ordering. Assertions are in hidden_api.cc.
+ // ApiList, and their ordering. Assertions are in hidden_api.cc.
if (static_cast<int>(policy) > static_cast<int>(api_list)) {
- return api_list == HiddenApiAccessFlags::kDarkGreylist
+ return api_list == ApiList::kDarkGreylist
? kAllowButWarnAndToast
: kAllowButWarn;
} else {
@@ -144,14 +144,14 @@ class MemberSignature {
bool IsExempted(const std::vector<std::string>& exemptions);
- void WarnAboutAccess(AccessMethod access_method, HiddenApiAccessFlags::ApiList list);
+ void WarnAboutAccess(AccessMethod access_method, ApiList list);
void LogAccessToEventLog(AccessMethod access_method, Action action_taken);
};
template<typename T>
Action GetMemberActionImpl(T* member,
- HiddenApiAccessFlags::ApiList api_list,
+ ApiList api_list,
Action action,
AccessMethod access_method)
REQUIRES_SHARED(Locks::mutator_lock_);
@@ -208,7 +208,7 @@ inline Action GetMemberAction(T* member,
// cannot change Java semantics. We should, however, decode the access flags
// once and use it throughout this function, otherwise we may get inconsistent
// results, e.g. print whitelist warnings (b/78327881).
- HiddenApiAccessFlags::ApiList api_list = member->GetHiddenApiAccessFlags();
+ ApiList api_list = member->GetHiddenApiAccessFlags();
Action action = GetActionFromAccessFlags(member->GetHiddenApiAccessFlags());
if (action == kAllow) {
diff --git a/runtime/hidden_api_test.cc b/runtime/hidden_api_test.cc
index 4c7efe666f..1727af016c 100644
--- a/runtime/hidden_api_test.cc
+++ b/runtime/hidden_api_test.cc
@@ -89,39 +89,39 @@ class HiddenApiTest : public CommonRuntimeTest {
TEST_F(HiddenApiTest, CheckGetActionFromRuntimeFlags) {
runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kNoChecks);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kWhitelist), hiddenapi::kAllow);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kLightGreylist), hiddenapi::kAllow);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kDarkGreylist), hiddenapi::kAllow);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kBlacklist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kWhitelist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kLightGreylist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kDarkGreylist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kBlacklist), hiddenapi::kAllow);
runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kJustWarn);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kWhitelist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kWhitelist),
hiddenapi::kAllow);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kLightGreylist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kLightGreylist),
hiddenapi::kAllowButWarn);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kDarkGreylist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kDarkGreylist),
hiddenapi::kAllowButWarn);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kBlacklist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kBlacklist),
hiddenapi::kAllowButWarn);
runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kDarkGreyAndBlackList);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kWhitelist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kWhitelist),
hiddenapi::kAllow);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kLightGreylist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kLightGreylist),
hiddenapi::kAllowButWarn);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kDarkGreylist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kDarkGreylist),
hiddenapi::kDeny);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kBlacklist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kBlacklist),
hiddenapi::kDeny);
runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kBlacklistOnly);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kWhitelist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kWhitelist),
hiddenapi::kAllow);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kLightGreylist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kLightGreylist),
hiddenapi::kAllowButWarn);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kDarkGreylist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kDarkGreylist),
hiddenapi::kAllowButWarnAndToast);
- ASSERT_EQ(GetActionFromAccessFlags(HiddenApiAccessFlags::kBlacklist),
+ ASSERT_EQ(GetActionFromAccessFlags(hiddenapi::ApiList::kBlacklist),
hiddenapi::kDeny);
}