diff options
| author | 2012-06-22 15:15:47 -0700 | |
|---|---|---|
| committer | 2012-06-22 15:19:41 -0700 | |
| commit | 640495bd1aebcd0b429d59f62b57d0c984b2d8c6 (patch) | |
| tree | 57373871951b28834a3e6b68c7812a07c0713a2d /src | |
| parent | 4cf6018b33269cd4009b7c9e4e2fefcb4f90acf9 (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.h | 2 | ||||
| -rw-r--r-- | src/thread.cc | 2 |
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(); |