ClassLinker changes
- Add ClassLinker::LockOwner for SignalCatcher
- ClassLinker::ResolveMethod now sets CodeAndDirectMethod when code is available
Change-Id: I404b80d1994808e018d00e0b30e8ba4f9d08fecc
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 82f42c4..86f2769 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -2614,6 +2614,9 @@
}
if (resolved != NULL) {
dex_cache->SetResolvedMethod(method_idx, resolved);
+ if (is_direct && resolved->GetCode() != NULL) {
+ dex_cache->GetCodeAndDirectMethods()->SetResolvedDirectMethod(method_idx, resolved);
+ }
} else {
ThrowNoSuchMethodError(is_direct ? "direct" : "virtual", klass, name, signature);
}
@@ -2686,4 +2689,8 @@
return classes_.size();
}
+pid_t ClassLinker::GetLockOwner() {
+ return lock_.GetOwner();
+}
+
} // namespace art