Do not create handle in BreakLocationIterator::ClearDebugBreakAtIC
authorpodivilov@chromium.org <podivilov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 6 Jul 2010 12:10:49 +0000 (12:10 +0000)
committerpodivilov@chromium.org <podivilov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 6 Jul 2010 12:10:49 +0000 (12:10 +0000)
Debug::HandleWeakDebugInfo weak callback is crashed when there is no handle scopes on the stack.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/debug.cc

index 1dc6275..b8e0252 100644 (file)
@@ -472,8 +472,9 @@ void BreakLocationIterator::ClearDebugBreakAtIC() {
 
   RelocInfo::Mode mode = rmode();
   if (RelocInfo::IsCodeTarget(mode)) {
+    AssertNoAllocation nogc;
     Address target = original_rinfo()->target_address();
-    Handle<Code> code(Code::GetCodeFromTargetAddress(target));
+    Code* code = Code::GetCodeFromTargetAddress(target);
 
     // Restore the inlined version of keyed stores to get back to the
     // fast case.  We need to patch back the keyed store because no