diff options
Diffstat (limited to 'runtime/art_method-inl.h')
-rw-r--r-- | runtime/art_method-inl.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/runtime/art_method-inl.h b/runtime/art_method-inl.h index c9a77331a7..65bacd8237 100644 --- a/runtime/art_method-inl.h +++ b/runtime/art_method-inl.h @@ -27,8 +27,9 @@ #include "dex/dex_file-inl.h" #include "dex/dex_file_annotations.h" #include "dex/dex_file_types.h" +#include "dex/invoke_type.h" #include "gc_root-inl.h" -#include "invoke_type.h" +#include "intrinsics_enum.h" #include "jit/profiling_info.h" #include "mirror/class-inl.h" #include "mirror/dex_cache-inl.h" @@ -412,7 +413,11 @@ inline void ArtMethod::SetIntrinsic(uint32_t intrinsic) { DCHECK_EQ(is_default_conflict, IsDefaultConflicting()); DCHECK_EQ(is_compilable, IsCompilable()); DCHECK_EQ(must_count_locks, MustCountLocks()); - DCHECK_EQ(hidden_api_list, GetHiddenApiAccessFlags()); + // We need to special case java.lang.ref.Reference.getRefererent. The Java method + // is hidden but we do not yet have a way of making intrinsics hidden. + if (intrinsic != static_cast<uint32_t>(Intrinsics::kReferenceGetReferent)) { + DCHECK_EQ(hidden_api_list, GetHiddenApiAccessFlags()); + } } else { SetAccessFlags(new_value); } |