summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author Ian Rogers <irogers@google.com> 2012-06-22 15:15:47 -0700
committer Ian Rogers <irogers@google.com> 2012-06-22 15:19:41 -0700
commit640495bd1aebcd0b429d59f62b57d0c984b2d8c6 (patch)
tree57373871951b28834a3e6b68c7812a07c0713a2d /src
parent4cf6018b33269cd4009b7c9e4e2fefcb4f90acf9 (diff)
Proxy methods don't have GC maps.
Fix regression caused by stack refactoring. Change-Id: I942b6f34fb4b1f1504466b46e004d4f92f1cb167
Diffstat (limited to 'src')
-rw-r--r--src/object.h2
-rw-r--r--src/thread.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/object.h b/src/object.h
index c1e46671e9..eeac3ea0f1 100644
--- a/src/object.h
+++ b/src/object.h
@@ -884,7 +884,7 @@ class MANAGED Method : public Object {
}
// 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 76dfa18b5f..e682487519 100644
--- a/src/thread.cc
+++ b/src/thread.cc
@@ -1642,7 +1642,7 @@ class ReferenceMapVisitor : public StackVisitor {
} 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();