Reviewers: Søren Gjesse,

Description:
Handlified some stack trace code
Fixed some failing sputnik tests by handlifying some code that would
otherwise break on gc.

Please review this at http://codereview.chromium.org/160159

Affected files:
   M src/runtime.cc


Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index  
7f5538920a1606bf1353fce32471638b87a5b923..7e6f1f3aa3193248083b298e2d824bf5a4506f8d
  
100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -7425,7 +7425,7 @@ static bool ShowFrameInStackTrace(StackFrame*  
raw_frame, Object* caller,
  // code offset.
  static Object* Runtime_CollectStackTrace(Arguments args) {
    ASSERT_EQ(args.length(), 2);
-  Object* caller = args[0];
+  Handle<Object> caller = args.at<Object>(0);
    CONVERT_NUMBER_CHECKED(int32_t, limit, Int32, args[1]);

    HandleScope scope;
@@ -7441,7 +7441,7 @@ static Object* Runtime_CollectStackTrace(Arguments  
args) {
    int frames_seen = 0;
    while (!iter.done() && frames_seen < limit) {
      StackFrame* raw_frame = iter.frame();
-    if (ShowFrameInStackTrace(raw_frame, caller, &seen_caller)) {
+    if (ShowFrameInStackTrace(raw_frame, *caller, &seen_caller)) {
        frames_seen++;
        JavaScriptFrame* frame = JavaScriptFrame::cast(raw_frame);
        Object* recv = frame->receiver();
@@ -7456,8 +7456,10 @@ static Object* Runtime_CollectStackTrace(Arguments  
args) {
          elements->set(cursor++, offset, SKIP_WRITE_BARRIER);
        } else {
          HandleScope scope;
-        SetElement(result, cursor++, Handle<Object>(recv));
-        SetElement(result, cursor++, Handle<Object>(fun));
+        Handle<Object> recv_handle(recv);
+        Handle<Object> fun_handle(fun);
+        SetElement(result, cursor++, recv_handle);
+        SetElement(result, cursor++, fun_handle);
          SetElement(result, cursor++, Handle<Smi>(offset));
        }
      }



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to