Revision: 2542
Author: [email protected]
Date: Mon Jul 27 06:26:43 2009
Log: Handlified some stack trace code
Fixed some failing sputnik tests by handlifying some code that would
otherwise break on gc.

Review URL: http://codereview.chromium.org/160159

http://code.google.com/p/v8/source/detail?r=2542

Modified:
  /branches/bleeding_edge/src/runtime.cc

=======================================
--- /branches/bleeding_edge/src/runtime.cc      Mon Jul 27 05:01:32 2009
+++ /branches/bleeding_edge/src/runtime.cc      Mon Jul 27 06:26:43 2009
@@ -7425,7 +7425,7 @@
  // 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 @@
    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 @@
          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