OSDN Git Service

Don't check code pointer for proxies in ArtMethod::GetQuickFrameInfo
authorMathieu Chartier <mathieuc@google.com>
Sat, 18 Jul 2015 02:53:47 +0000 (19:53 -0700)
committerMathieu Chartier <mathieuc@google.com>
Sun, 19 Jul 2015 21:13:00 +0000 (14:13 -0700)
Bug: 22541058

Change-Id: Id084a69ccd9835147ec71df6bb759e0f1b5e6fbf

runtime/art_method-inl.h

index 8712bdb..bb3c72c 100644 (file)
@@ -20,6 +20,7 @@
 #include "art_method.h"
 
 #include "art_field.h"
+#include "base/logging.h"
 #include "dex_file.h"
 #include "dex_file-inl.h"
 #include "gc_root-inl.h"
@@ -317,7 +318,9 @@ inline uintptr_t ArtMethod::NativeQuickPcOffset(const uintptr_t pc) {
 
 inline QuickMethodFrameInfo ArtMethod::GetQuickFrameInfo(const void* code_pointer) {
   DCHECK(code_pointer != nullptr);
-  DCHECK_EQ(code_pointer, GetQuickOatCodePointer(sizeof(void*)));
+  if (kIsDebugBuild && !IsProxyMethod()) {
+    CHECK_EQ(code_pointer, GetQuickOatCodePointer(sizeof(void*)));
+  }
   return reinterpret_cast<const OatQuickMethodHeader*>(code_pointer)[-1].frame_info_;
 }