summaryrefslogtreecommitdiff
path: root/runtime/art_method-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/art_method-inl.h')
-rw-r--r--runtime/art_method-inl.h9
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);
}