summaryrefslogtreecommitdiff
path: root/src/stack.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/stack.cc')
-rw-r--r--src/stack.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/stack.cc b/src/stack.cc
index 8690a36387..8672975453 100644
--- a/src/stack.cc
+++ b/src/stack.cc
@@ -42,6 +42,15 @@ mirror::Object* ShadowFrame::GetThisObject() const {
}
}
+mirror::Object* ShadowFrame::GetThisObject(uint16_t num_ins) const {
+ mirror::AbstractMethod* m = GetMethod();
+ if (m->IsStatic()) {
+ return NULL;
+ } else {
+ return GetVRegReference(NumberOfVRegs() - num_ins);
+ }
+}
+
ThrowLocation ShadowFrame::GetCurrentLocationForThrow() const {
return ThrowLocation(GetThisObject(), GetMethod(), GetDexPC());
}