Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(251)

Unified Diff: runtime/vm/stack_frame.cc

Issue 23494026: Change inlined stack frame iterator to use code and pc instead of frame. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/stack_frame.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/stack_frame.cc
===================================================================
--- runtime/vm/stack_frame.cc (revision 27137)
+++ runtime/vm/stack_frame.cc (working copy)
@@ -343,25 +343,22 @@
}
-InlinedFunctionsIterator::InlinedFunctionsIterator(StackFrame* frame)
+InlinedFunctionsIterator::InlinedFunctionsIterator(const Code& code, uword pc)
: index_(0),
- code_(Code::Handle()),
+ code_(Code::Handle(code.raw())),
deopt_info_(DeoptInfo::Handle()),
function_(Function::Handle()),
- pc_(0),
+ pc_(pc),
deopt_instructions_(),
object_table_(Array::Handle()) {
siva 2013/09/04 19:32:42 Need an assertion here to ensure that the passed i
srdjan 2013/09/04 19:36:03 Done.
- ASSERT(frame != NULL);
- code_ = frame->LookupDartCode();
ASSERT(code_.is_optimized());
intptr_t deopt_reason = kDeoptUnknown;
- deopt_info_ = code_.GetDeoptInfoAtPc(frame->pc(), &deopt_reason);
+ deopt_info_ = code_.GetDeoptInfoAtPc(pc, &deopt_reason);
if (deopt_info_.IsNull()) {
// This is the case when a call without deopt info in optimized code
// throws an exception. (e.g. in the parameter copying prologue).
// In that case there won't be any inlined frames.
function_ = code_.function();
- pc_ = frame->pc();
ASSERT(pc_ != 0);
} else {
// Unpack deopt info into instructions (translate away suffixes).
« no previous file with comments | « runtime/vm/stack_frame.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698