From: Nicolas Geoffray Date: Fri, 4 Mar 2016 16:43:27 +0000 (+0000) Subject: Query declaring class before querying IsNative. X-Git-Tag: android-x86-7.1-r1~340^2~24^2~5^2~10^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=26329cd578efe9cd7e60c46fef1bfb549062a283;p=android-x86%2Fart.git Query declaring class before querying IsNative. IsNative checks that the declaring class is not null. Change-Id: I9b775858cdb685eb633b3d8a8a271a3d451bb8a9 --- diff --git a/runtime/mirror/class-inl.h b/runtime/mirror/class-inl.h index cbcb4b964..103a8b79e 100644 --- a/runtime/mirror/class-inl.h +++ b/runtime/mirror/class-inl.h @@ -940,7 +940,7 @@ void mirror::Class::VisitNativeRoots(Visitor& visitor, size_t pointer_size) { } for (ArtMethod& method : GetMethods(pointer_size)) { method.VisitRoots(visitor, pointer_size); - if (!method.IsNative()) { + if (method.GetDeclaringClassUnchecked() != nullptr && !method.IsNative()) { ProfilingInfo* profiling_info = method.GetProfilingInfo(pointer_size); if (profiling_info != nullptr) { profiling_info->VisitRoots(visitor);