From 6641ea12b98dda9ec45d29f20e43f85698b88a02 Mon Sep 17 00:00:00 2001 From: jeffhao Date: Wed, 2 Jan 2013 18:13:42 -0800 Subject: Fix stack walking when top frame has null method pointer. Changed the do-while loop to just a while loop in the stack walk. This fixes the case where the top frame has a null method pointer, which can happen during instrumentation. Change-Id: If7d67cd315d31bac4c1bbe31d6e385612b182935 --- src/stack.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/stack.cc') diff --git a/src/stack.cc b/src/stack.cc index e962dec8b6..228f96d31d 100644 --- a/src/stack.cc +++ b/src/stack.cc @@ -221,7 +221,7 @@ void StackVisitor::WalkStack(bool include_transitions) { // Can't be both a shadow and a quick fragment. DCHECK(current_fragment->GetTopShadowFrame() == NULL); AbstractMethod* method = *cur_quick_frame_; - do { + while (method != NULL) { SanityCheckFrame(); bool should_continue = VisitFrame(); if (UNLIKELY(!should_continue)) { @@ -253,7 +253,7 @@ void StackVisitor::WalkStack(bool include_transitions) { cur_quick_frame_ = reinterpret_cast(next_frame); cur_depth_++; method = *cur_quick_frame_; - } while (method != NULL); + } } else if (cur_shadow_frame_ != NULL) { do { SanityCheckFrame(); -- cgit v1.2.3-59-g8ed1b