summaryrefslogtreecommitdiff
path: root/runtime/class_linker.cc
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2015-03-26 09:41:50 -0700
committer Mathieu Chartier <mathieuc@google.com> 2015-03-26 13:34:27 -0700
commitd8565456d29f4ad05f11cf84d2d2dac488508e06 (patch)
tree8c5eca4c2604e0edc1606ea151d78538098dc040 /runtime/class_linker.cc
parent81adb4f8fd261be11d399d210029189e94888a9e (diff)
Fix ClassLinker::MayBeCalledWithDirectCodePointer for JIT
Currently, we don't know if another method has a direct code pointer or not. This should fix the case where breakpoints occasionally don't work with JIT. The JIT now also checks that a method doesn't have any breakpoints before starting to compile it. Bug: 17950037 Change-Id: I17cfe874fe4825beba23903a5053d5cb27e106cb
Diffstat (limited to 'runtime/class_linker.cc')
-rw-r--r--runtime/class_linker.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index 67872d76ae..b0708a6c0e 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -5286,6 +5286,10 @@ std::size_t ClassLinker::ClassDescriptorHashEquals::operator()(const char* descr
}
bool ClassLinker::MayBeCalledWithDirectCodePointer(mirror::ArtMethod* m) {
+ if (Runtime::Current()->UseJit()) {
+ // JIT can have direct code pointers from any method to any other method.
+ return true;
+ }
// Non-image methods don't use direct code pointer.
if (!m->GetDeclaringClass()->IsBootStrapClassLoaded()) {
return false;