From 6dac67da84a8956354503109d1f4c136ccae6b27 Mon Sep 17 00:00:00 2001 From: "yangguo@chromium.org" Date: Fri, 9 May 2014 08:42:17 +0000 Subject: [PATCH] Use ReplaceCode instead of set_code in debug.cc. R=ulan@chromium.org Review URL: https://codereview.chromium.org/274043002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/debug.cc | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/debug.cc b/src/debug.cc index 4e633c9..bb58908 100644 --- a/src/debug.cc +++ b/src/debug.cc @@ -2050,12 +2050,11 @@ void Debug::EnsureFunctionHasDebugBreakSlots(Handle function) { ForceDebuggerActive force_debugger_active(isolate_); MaybeHandle code = Compiler::GetCodeForDebugging(function); // Recompilation can fail. In that case leave the code as it was. - if (!code.is_null()) - function->ReplaceCode(*code.ToHandleChecked()); + if (!code.is_null()) function->ReplaceCode(*code.ToHandleChecked()); + } else { + // Simply use shared code if it has debug break slots. + function->ReplaceCode(function->shared()->code()); } - - // Keep function code in sync with shared function info. - function->ReplaceCode(function->shared()->code()); } @@ -2152,8 +2151,8 @@ void Debug::PrepareForBreakPoints() { Code::Kind kind = function->code()->kind(); if (kind == Code::FUNCTION && !function->code()->has_debug_break_slots()) { - function->set_code(*lazy_compile); - function->shared()->set_code(*lazy_compile); + function->ReplaceCode(*lazy_compile); + function->shared()->ReplaceCode(*lazy_compile); } else if (kind == Code::BUILTIN && (function->IsInOptimizationQueue() || function->IsMarkedForOptimization() || @@ -2162,10 +2161,10 @@ void Debug::PrepareForBreakPoints() { Code* shared_code = function->shared()->code(); if (shared_code->kind() == Code::FUNCTION && shared_code->has_debug_break_slots()) { - function->set_code(shared_code); + function->ReplaceCode(shared_code); } else { - function->set_code(*lazy_compile); - function->shared()->set_code(*lazy_compile); + function->ReplaceCode(*lazy_compile); + function->shared()->ReplaceCode(*lazy_compile); } } } else if (obj->IsJSGeneratorObject()) { @@ -2206,8 +2205,8 @@ void Debug::PrepareForBreakPoints() { Handle &function = generator_functions[i]; if (function->code()->kind() != Code::FUNCTION) continue; if (function->code()->has_debug_break_slots()) continue; - function->set_code(*lazy_compile); - function->shared()->set_code(*lazy_compile); + function->ReplaceCode(*lazy_compile); + function->shared()->ReplaceCode(*lazy_compile); } // Now recompile all functions with activation frames and and -- 2.7.4