Reviewers: Mads Ager,

Description:
Fix an issue of a raw pointer being returned after possible allocation.

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

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
   M     src/ic.cc


Index: src/ic.cc
===================================================================
--- src/ic.cc   (revision 993)
+++ src/ic.cc   (working copy)
@@ -355,14 +355,19 @@
      // If performing debug step into then flood this function with one-shot
      // break points if it is called from where step into was requested.
      if (Debug::StepInActive() && fp() == Debug::step_in_fp()) {
+      // Protect the result in a handle as the debugger can allocate and  
might
+      //cause GC.
+      HandleScope scope;
+      Handle<Object> result_handle(result);
        // Don't allow step into functions in the native context.
        if (JSFunction::cast(result)->context()->global() !=
            Top::context()->builtins()) {
-        HandleScope scope;
          Handle<SharedFunctionInfo>  
shared(JSFunction::cast(result)->shared());
          Debug::FloodWithOneShot(shared);
        }
+      return *result_handle;
      }
+
      return result;
    }




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

Reply via email to