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) {