Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1446)

Unified Diff: src/log.h

Issue 435003: Patch for allowing several V8 instances in process:... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/jump-target.cc ('k') | src/log.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/log.h
===================================================================
--- src/log.h (revision 3427)
+++ src/log.h (working copy)
@@ -139,6 +139,52 @@
V(STORE_IC_TAG, "StoreIC", "sic") \
V(STUB_TAG, "Stub", "s")
+class LoggerPrivateData;
+
+class LoggerData {
+ #ifdef ENABLE_LOGGING_AND_PROFILING
+ // The sampler used by the profiler and the sliding state window.
+ Ticker* ticker_;
+
+ // When the statistical profile is active, profiler_
+ // points to a Profiler, that handles collection
+ // of samples.
+ Profiler* profiler_;
+
+ // A stack of VM states.
+ VMState* current_state_;
+
+ // Singleton bottom or default vm state.
+ VMState bottom_state_;
+
+ // SlidingStateWindow instance keeping a sliding window of the most
+ // recent VM states.
+ SlidingStateWindow* sliding_state_window_;
+
+ // An array of log events names.
+ const char** log_events_;
+
+ // An instance of helper created if log compression is enabled.
+ CompressionHelper* compression_helper_;
+
+ bool is_logging_;
+
+ LoggerPrivateData& private_data_;
+ #endif
+
+ friend class V8Context;
+ friend class Logger;
+ friend class VMState;
+ friend class Profiler;
+ friend class SlidingStateWindow;
+ friend class StackTracer;
+ friend class CompressionHelper;
+
+ LoggerData();
+ ~LoggerData();
+ DISALLOW_COPY_AND_ASSIGN(LoggerData);
+};
+
class Logger {
public:
#define DECLARE_ENUM(enum_item, ignore1, ignore2) enum_item,
@@ -255,11 +301,13 @@
#ifdef ENABLE_LOGGING_AND_PROFILING
static StateTag state() {
- return current_state_ ? current_state_->state() : OTHER;
+ LoggerData& data = v8_context()->logger_data_;
+ return data.current_state_ ? data.current_state_->state() : OTHER;
}
static bool is_logging() {
- return is_logging_;
+ V8Context* const v8context = v8_context();
+ return v8context != NULL ? v8context->logger_data_.is_logging_:false;
}
// Pause/Resume collection of profiling data.
@@ -316,43 +364,16 @@
// Returns whether profiler's sampler is active.
static bool IsProfilerSamplerActive();
- // The sampler used by the profiler and the sliding state window.
- static Ticker* ticker_;
-
- // When the statistical profile is active, profiler_
- // points to a Profiler, that handles collection
- // of samples.
- static Profiler* profiler_;
-
- // A stack of VM states.
- static VMState* current_state_;
-
- // Singleton bottom or default vm state.
- static VMState bottom_state_;
-
- // SlidingStateWindow instance keeping a sliding window of the most
- // recent VM states.
- static SlidingStateWindow* sliding_state_window_;
-
- // An array of log events names.
- static const char** log_events_;
-
- // An instance of helper created if log compression is enabled.
- static CompressionHelper* compression_helper_;
-
// Internal implementation classes with access to
// private members.
friend class CompressionHelper;
friend class EventLog;
friend class TimeLog;
friend class Profiler;
- friend class SlidingStateWindow;
friend class StackTracer;
friend class VMState;
friend class LoggerTestHelper;
-
- static bool is_logging_;
#else
static bool is_logging() { return false; }
#endif
« no previous file with comments | « src/jump-target.cc ('k') | src/log.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698