Reviewers: Søren Gjesse,

Description:
Return immediately from GetLogLines if logging to memory isn't enabled.

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

Affected files:
   M src/log.cc
   M test/cctest/test-log.cc


Index: src/log.cc
diff --git a/src/log.cc b/src/log.cc
index  
b4e20540a14bc4ba631efc7fcfc2114f59d05a75..5297a302d80d7cdfde3fd8c224c6625de6f577c6
  
100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -423,6 +423,7 @@ void Log::Close() {


  int Log::GetLogLines(int from_pos, char* dest_buf, int max_size) {
+  if (Write != WriteToMemory) return 0;
    ASSERT(output_.buffer != NULL);
    ASSERT(output_buffer_write_pos_ >= output_.buffer);
    ASSERT(from_pos >= 0);
Index: test/cctest/test-log.cc
diff --git a/test/cctest/test-log.cc b/test/cctest/test-log.cc
index  
0370cbec45196ed67ea1cd790366f40bd996e943..6a7e54f1d11af69765201f6d62a48881dc9b2291
  
100644
--- a/test/cctest/test-log.cc
+++ b/test/cctest/test-log.cc
@@ -23,6 +23,7 @@ static void TearDown() {
    Logger::TearDown();
  }

+
  TEST(EmptyLog) {
    SetUp();
    CHECK_EQ(0, Logger::GetLogLines(0, NULL, 0));
@@ -99,4 +100,18 @@ TEST(BeyondWritePosition) {
    TearDown();
  }

+
+TEST(MemoryLoggingTurnedOff) {
+  // Log to stdout
+  v8::internal::FLAG_logfile = "-";
+  v8::internal::FLAG_log = true;
+  Logger::Setup();
+  CHECK_EQ(0, Logger::GetLogLines(0, NULL, 0));
+  CHECK_EQ(0, Logger::GetLogLines(100, NULL, 0));
+  CHECK_EQ(0, Logger::GetLogLines(0, NULL, 100));
+  CHECK_EQ(0, Logger::GetLogLines(100, NULL, 100));
+  Logger::TearDown();
+}
+
+
  #endif  // ENABLE_LOGGING_AND_PROFILING



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

Reply via email to