Fix a error in SamplingCircularQueue found using Valgrind memcheck.
authormikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 30 Aug 2010 13:30:54 +0000 (13:30 +0000)
committermikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 30 Aug 2010 13:30:54 +0000 (13:30 +0000)
Review URL: http://codereview.chromium.org/3251004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/circular-queue.cc

index af650de..928c3f0 100644 (file)
@@ -47,8 +47,9 @@ SamplingCircularQueue::SamplingCircularQueue(int record_size_in_bytes,
       producer_consumer_distance_(2 * chunk_size_),
       buffer_(NewArray<Cell>(buffer_size_ + 1)) {
   ASSERT(buffer_size_in_chunks > 2);
-  // Only need to keep the first cell of a chunk clean.
-  for (int i = 0; i < buffer_size_; i += chunk_size_) {
+  // Clean up the whole buffer to avoid encountering a random kEnd
+  // while enqueuing.
+  for (int i = 0; i < buffer_size_; ++i) {
     buffer_[i] = kClear;
   }
   buffer_[buffer_size_] = kEnd;