Fix some ArtMethod related bugs
Added root visiting for runtime methods, not currently required
since the GcRoots in these methods are null.
Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes
--trace run-tests 005, 044.
Fixed optimizing compiler bug where we used a normal stack location
instead of double on ARM64, this fixes the debuggable tests.
TODO: Fix JDWP tests.
Bug: 19264997
Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3
diff --git a/runtime/art_method-inl.h b/runtime/art_method-inl.h
index ad1ecea..5cfce41 100644
--- a/runtime/art_method-inl.h
+++ b/runtime/art_method-inl.h
@@ -484,9 +484,9 @@
template<typename RootVisitorType>
void ArtMethod::VisitRoots(RootVisitorType& visitor) {
- visitor.VisitRoot(declaring_class_.AddressWithoutBarrier());
- visitor.VisitRoot(dex_cache_resolved_methods_.AddressWithoutBarrier());
- visitor.VisitRoot(dex_cache_resolved_types_.AddressWithoutBarrier());
+ visitor.VisitRootIfNonNull(declaring_class_.AddressWithoutBarrier());
+ visitor.VisitRootIfNonNull(dex_cache_resolved_methods_.AddressWithoutBarrier());
+ visitor.VisitRootIfNonNull(dex_cache_resolved_types_.AddressWithoutBarrier());
}
inline void ArtMethod::CopyFrom(const ArtMethod* src, size_t image_pointer_size) {