summaryrefslogtreecommitdiff
path: root/runtime/stack.cc
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2016-04-28 14:56:54 -0700
committer Andreas Gampe <agampe@google.com> 2016-04-29 17:33:22 -0700
commit56fdd0e63812764bbeb8cc52e376d3fd1f270052 (patch)
tree6988e995bf02f788066fb6e748cd3049fe87d31a /runtime/stack.cc
parent9d05b59a8595cf7eeece1795eb65b6b8706aad45 (diff)
ART: Disambiguate access-checks mode from lock-counting
Lock-counting (when structural locking verification failed) is a special sub-mode of access-checks and must be disambiguated, because we currently use access-checks mode class-wide when at least one method soft-fails, but do not stop the compiler/JIT to compile the "working" methods. So we may end up in the access-checks interpreter for a working method through deopt without knowing which locks are already held. Bug: 28351535 (cherry picked from commit f517e283d477dd2ae229ee3f054120c6953895db) Change-Id: I083032f064d88df8f8f0611ad8b57d1b39cd09fb
Diffstat (limited to 'runtime/stack.cc')
-rw-r--r--runtime/stack.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/runtime/stack.cc b/runtime/stack.cc
index e56d35a91e..a5ca527aa2 100644
--- a/runtime/stack.cc
+++ b/runtime/stack.cc
@@ -950,7 +950,7 @@ int StackVisitor::GetVRegOffsetFromQuickCode(const DexFile::CodeItem* code_item,
}
}
-void LockCountData::AddMonitorInternal(Thread* self, mirror::Object* obj) {
+void LockCountData::AddMonitor(Thread* self, mirror::Object* obj) {
if (obj == nullptr) {
return;
}
@@ -967,7 +967,7 @@ void LockCountData::AddMonitorInternal(Thread* self, mirror::Object* obj) {
monitors_->push_back(obj);
}
-void LockCountData::RemoveMonitorInternal(Thread* self, const mirror::Object* obj) {
+void LockCountData::RemoveMonitorOrThrow(Thread* self, const mirror::Object* obj) {
if (obj == nullptr) {
return;
}
@@ -1000,7 +1000,7 @@ void MonitorExitHelper(Thread* self, mirror::Object* obj) NO_THREAD_SAFETY_ANALY
obj->MonitorExit(self);
}
-bool LockCountData::CheckAllMonitorsReleasedInternal(Thread* self) {
+bool LockCountData::CheckAllMonitorsReleasedOrThrow(Thread* self) {
DCHECK(self != nullptr);
if (monitors_ != nullptr) {
if (!monitors_->empty()) {