summaryrefslogtreecommitdiffstats
path: root/compiler/driver/compiler_driver-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/driver/compiler_driver-inl.h')
-rw-r--r--compiler/driver/compiler_driver-inl.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/driver/compiler_driver-inl.h b/compiler/driver/compiler_driver-inl.h
index 664f809..d9f2a3a 100644
--- a/compiler/driver/compiler_driver-inl.h
+++ b/compiler/driver/compiler_driver-inl.h
@@ -289,6 +289,16 @@ inline int CompilerDriver::IsFastInvoke(
return stats_flags;
}
+inline bool CompilerDriver::NeedsClassInitialization(mirror::Class* referrer_class,
+ mirror::ArtMethod* resolved_method) {
+ if (!resolved_method->IsStatic()) {
+ return false;
+ }
+ mirror::Class* methods_class = resolved_method->GetDeclaringClass();
+ // NOTE: Unlike in IsFastStaticField(), we don't check CanAssumeTypeIsPresentInDexCache() here.
+ return methods_class != referrer_class && !methods_class->IsInitialized();
+}
+
} // namespace art
#endif // ART_COMPILER_DRIVER_COMPILER_DRIVER_INL_H_