summaryrefslogtreecommitdiff
path: root/runtime/class_linker.cc
diff options
context:
space:
mode:
author Hiroshi Yamauchi <yamauchi@google.com> 2016-06-10 17:22:48 -0700
committer Hiroshi Yamauchi <yamauchi@google.com> 2016-06-13 13:57:34 -0700
commit7a62e6728463237684d3d9834d81bd7bba7ab197 (patch)
tree7f53e92a3303475cb8c164d98274d465bd32ef00 /runtime/class_linker.cc
parent1e5dda549c11d02aff51f132760dd693e351ce85 (diff)
Propagate the read barrier option to Class::VisitNativeRoots.
Propagate the read barrier option from Object::VisitReferences to Class::VisitNativeRoots. This is a step toward the GC thread avoiding graying objects (and reducing dirty pages) in the immune spaces. Bug: 12687968 Change-Id: I29c4126a4ad4c40e63a934e62451fb3fb36aad43
Diffstat (limited to 'runtime/class_linker.cc')
-rw-r--r--runtime/class_linker.cc27
1 files changed, 0 insertions, 27 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index d03b57cf1f..343bc8fb7b 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -4248,33 +4248,6 @@ std::string ClassLinker::GetDescriptorForProxy(mirror::Class* proxy_class) {
return DotToDescriptor(name->ToModifiedUtf8().c_str());
}
-ArtMethod* ClassLinker::FindMethodForProxy(mirror::Class* proxy_class, ArtMethod* proxy_method) {
- DCHECK(proxy_class->IsProxyClass());
- DCHECK(proxy_method->IsProxyMethod());
- {
- Thread* const self = Thread::Current();
- ReaderMutexLock mu(self, dex_lock_);
- // Locate the dex cache of the original interface/Object
- for (const DexCacheData& data : dex_caches_) {
- if (!self->IsJWeakCleared(data.weak_root) &&
- proxy_method->HasSameDexCacheResolvedTypes(data.resolved_types,
- image_pointer_size_)) {
- mirror::DexCache* dex_cache = down_cast<mirror::DexCache*>(
- self->DecodeJObject(data.weak_root));
- if (dex_cache != nullptr) {
- ArtMethod* resolved_method = dex_cache->GetResolvedMethod(
- proxy_method->GetDexMethodIndex(), image_pointer_size_);
- CHECK(resolved_method != nullptr);
- return resolved_method;
- }
- }
- }
- }
- LOG(FATAL) << "Didn't find dex cache for " << PrettyClass(proxy_class) << " "
- << PrettyMethod(proxy_method);
- UNREACHABLE();
-}
-
void ClassLinker::CreateProxyConstructor(Handle<mirror::Class> klass, ArtMethod* out) {
// Create constructor for Proxy that must initialize the method.
CHECK_EQ(GetClassRoot(kJavaLangReflectProxy)->NumDirectMethods(), 18u);