Don't return frame by reference in ProcessTopOptimizedFrame.
authormstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 3 Jul 2013 09:47:22 +0000 (09:47 +0000)
committermstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 3 Jul 2013 09:47:22 +0000 (09:47 +0000)
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

src/mark-compact.cc

index 449e655..7eab22a 100644 (file)
@@ -2181,28 +2181,20 @@ 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();
-    }
-  }
-  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);
+      Code* code = it.frame()->LookupCode();
+      if (!code->CanDeoptAt(it.frame()->pc())) {
+        code->CodeIterateBody(visitor);
+      }
+      ProcessMarkingDeque();
+      return;
     }
-    ProcessMarkingDeque();
   }
 }