From 08e7b94924aa5872e7fec691a5fd05cae52cc55d Mon Sep 17 00:00:00 2001 From: "vegorov@chromium.org" Date: Tue, 26 Apr 2011 13:53:19 +0000 Subject: [PATCH] Fix compilation with debuggersupport=off. Review URL: http://codereview.chromium.org/6901026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/compiler.cc | 2 +- src/isolate-inl.h | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ src/isolate.cc | 2 ++ src/isolate.h | 6 +++++- src/liveedit.cc | 2 +- src/objects-printer.cc | 2 +- src/runtime-profiler.cc | 2 +- src/runtime.cc | 4 ++-- src/v8.h | 1 + 9 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 src/isolate-inl.h diff --git a/src/compiler.cc b/src/compiler.cc index 0efdeb2..16250af 100755 --- a/src/compiler.cc +++ b/src/compiler.cc @@ -664,7 +664,7 @@ bool Compiler::CompileLazy(CompilationInfo* info) { // version of the function right away - unless the debugger is // active as it makes no sense to compile optimized code then. if (FLAG_always_opt && - !Isolate::Current()->debug()->has_break_points()) { + !Isolate::Current()->DebuggerHasBreakPoints()) { CompilationInfo optimized(function); optimized.SetOptimizing(AstNode::kNoNumber); return CompileLazy(&optimized); diff --git a/src/isolate-inl.h b/src/isolate-inl.h new file mode 100644 index 0000000..aa6b537 --- /dev/null +++ b/src/isolate-inl.h @@ -0,0 +1,50 @@ +// Copyright 2011 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef V8_ISOLATE_INL_H_ +#define V8_ISOLATE_INL_H_ + +#include "isolate.h" + +#include "debug.h" + +namespace v8 { +namespace internal { + + +bool Isolate::DebuggerHasBreakPoints() { +#ifdef ENABLE_DEBUGGER_SUPPORT + return debug()->has_break_points(); +#else + return false; +#endif +} + + +} } // namespace v8::internal + +#endif // V8_ISOLATE_INL_H_ diff --git a/src/isolate.cc b/src/isolate.cc index e42d78e..298d2e6 100644 --- a/src/isolate.cc +++ b/src/isolate.cc @@ -327,10 +327,12 @@ void Isolate::EnsureDefaultIsolate() { } +#ifdef ENABLE_DEBUGGER_SUPPORT Debugger* Isolate::GetDefaultIsolateDebugger() { EnsureDefaultIsolate(); return default_isolate_->debugger(); } +#endif StackGuard* Isolate::GetDefaultIsolateStackGuard() { diff --git a/src/isolate.h b/src/isolate.h index 35ffcb4..1706b48 100644 --- a/src/isolate.h +++ b/src/isolate.h @@ -294,7 +294,6 @@ class HashMap; #ifdef ENABLE_DEBUGGER_SUPPORT #define ISOLATE_DEBUGGER_INIT_LIST(V) \ - V(uint64_t, enabled_cpu_features, 0) \ V(v8::Debug::EventCallback, debug_event_callback, NULL) \ V(DebuggerAgent*, debugger_agent_instance, NULL) #else @@ -370,6 +369,7 @@ typedef List DebugObjectCache; V(unsigned, ast_node_count, 0) \ /* SafeStackFrameIterator activations count. */ \ V(int, safe_stack_iterator_counter, 0) \ + V(uint64_t, enabled_cpu_features, 0) \ ISOLATE_PLATFORM_INIT_LIST(V) \ ISOLATE_LOGGING_INIT_LIST(V) \ ISOLATE_DEBUGGER_INIT_LIST(V) @@ -486,9 +486,11 @@ class Isolate { // Safe to call multiple times. static void EnsureDefaultIsolate(); +#ifdef ENABLE_DEBUGGER_SUPPORT // Get the debugger from the default isolate. Preinitializes the // default isolate if needed. static Debugger* GetDefaultIsolateDebugger(); +#endif // Get the stack guard from the default isolate. Preinitializes the // default isolate if needed. @@ -912,6 +914,8 @@ class Isolate { Debug* debug() { return debug_; } #endif + inline bool DebuggerHasBreakPoints(); + #ifdef ENABLE_LOGGING_AND_PROFILING ProducerHeapProfile* producer_heap_profile() { return producer_heap_profile_; diff --git a/src/liveedit.cc b/src/liveedit.cc index 1466766..42724cb 100644 --- a/src/liveedit.cc +++ b/src/liveedit.cc @@ -1682,7 +1682,7 @@ void LiveEditFunctionTracker::RecordRootFunctionInfo(Handle code) { } -bool LiveEditFunctionTracker::IsActive() { +bool LiveEditFunctionTracker::IsActive(Isolate* isolate) { return false; } diff --git a/src/objects-printer.cc b/src/objects-printer.cc index ac5e204..b26fd23 100644 --- a/src/objects-printer.cc +++ b/src/objects-printer.cc @@ -419,8 +419,8 @@ static const char* TypeToString(InstanceType type) { #define MAKE_STRUCT_CASE(NAME, Name, name) case NAME##_TYPE: return #NAME; STRUCT_LIST(MAKE_STRUCT_CASE) #undef MAKE_STRUCT_CASE + default: return "UNKNOWN"; } - return "UNKNOWN"; } diff --git a/src/runtime-profiler.cc b/src/runtime-profiler.cc index 8d258ac..ce9a308 100644 --- a/src/runtime-profiler.cc +++ b/src/runtime-profiler.cc @@ -171,7 +171,7 @@ void RuntimeProfiler::AttemptOnStackReplacement(JSFunction* function) { // Debug::has_break_points(). ASSERT(function->IsMarkedForLazyRecompilation()); if (!FLAG_use_osr || - isolate_->debug()->has_break_points() || + isolate_->DebuggerHasBreakPoints() || function->IsBuiltin()) { return; } diff --git a/src/runtime.cc b/src/runtime.cc index ae2693e..d8aaf71 100644 --- a/src/runtime.cc +++ b/src/runtime.cc @@ -7298,13 +7298,13 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_LazyRecompile) { // If the function is not optimizable or debugger is active continue using the // code from the full compiler. if (!function->shared()->code()->optimizable() || - isolate->debug()->has_break_points()) { + isolate->DebuggerHasBreakPoints()) { if (FLAG_trace_opt) { PrintF("[failed to optimize "); function->PrintName(); PrintF(": is code optimizable: %s, is debugger enabled: %s]\n", function->shared()->code()->optimizable() ? "T" : "F", - isolate->debug()->has_break_points() ? "T" : "F"); + isolate->DebuggerHasBreakPoints() ? "T" : "F"); } function->ReplaceCode(function->shared()->code()); return function->code(); diff --git a/src/v8.h b/src/v8.h index 776fa9c..9d98521 100644 --- a/src/v8.h +++ b/src/v8.h @@ -66,6 +66,7 @@ #include "log-inl.h" #include "cpu-profiler-inl.h" #include "handles-inl.h" +#include "isolate-inl.h" namespace v8 { namespace internal { -- 2.7.4