Proxy methods don't have GC maps.
Fix regression caused by stack refactoring.
Change-Id: I942b6f34fb4b1f1504466b46e004d4f92f1cb167
diff --git a/src/object.h b/src/object.h
index c1e4667..eeac3ea 100644
--- a/src/object.h
+++ b/src/object.h
@@ -884,7 +884,7 @@
}
// Is this a CalleSaveMethod or ResolutionMethod and therefore doesn't adhere to normal
- // conventions for a method of managed code.
+ // conventions for a method of managed code. Returns false for Proxy methods.
bool IsRuntimeMethod() const {
return GetDexMethodIndex() == DexFile::kDexNoIndex16;
}
diff --git a/src/thread.cc b/src/thread.cc
index 76dfa18..e682487 100644
--- a/src/thread.cc
+++ b/src/thread.cc
@@ -1642,7 +1642,7 @@
} else {
Method* m = GetMethod();
// Process register map (which native and runtime methods don't have)
- if (!m->IsNative() && !m->IsRuntimeMethod()) {
+ if (!m->IsNative() && !m->IsRuntimeMethod() && !m->IsProxyMethod()) {
const uint8_t* gc_map = m->GetGcMap();
CHECK(gc_map != NULL) << PrettyMethod(m);
uint32_t gc_map_length = m->GetGcMapLength();