Don't return frame by reference in ProcessTopOptimizedFrame.
R=ulan@chromium.org Review URL: https://codereview.chromium.org/18592006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
57f46c0190
commit
9bd3128736
@ -2181,29 +2181,21 @@ void MarkCompactCollector::ProcessEphemeralMarking(ObjectVisitor* visitor) {
|
||||
}
|
||||
|
||||
|
||||
static StackFrame* TopOptimizedFrame(Isolate* isolate) {
|
||||
for (StackFrameIterator it(isolate, isolate->thread_local_top());
|
||||
void MarkCompactCollector::ProcessTopOptimizedFrame(ObjectVisitor* visitor) {
|
||||
for (StackFrameIterator it(isolate(), isolate()->thread_local_top());
|
||||
!it.done(); it.Advance()) {
|
||||
if (it.frame()->type() == StackFrame::JAVA_SCRIPT) {
|
||||
return NULL;
|
||||
return;
|
||||
}
|
||||
if (it.frame()->type() == StackFrame::OPTIMIZED) {
|
||||
return it.frame();
|
||||
Code* code = it.frame()->LookupCode();
|
||||
if (!code->CanDeoptAt(it.frame()->pc())) {
|
||||
code->CodeIterateBody(visitor);
|
||||
}
|
||||
ProcessMarkingDeque();
|
||||
return;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
void MarkCompactCollector::ProcessTopOptimizedFrame(ObjectVisitor* visitor) {
|
||||
StackFrame* frame = TopOptimizedFrame(isolate());
|
||||
if (frame != NULL) {
|
||||
Code* code = frame->LookupCode();
|
||||
if (!code->CanDeoptAt(frame->pc())) {
|
||||
code->CodeIterateBody(visitor);
|
||||
}
|
||||
ProcessMarkingDeque();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user