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 -~----------~----~----~----~------~----~------~--~---
