LCOV - code coverage report
Current view: top level - src - bit-vector.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 9 14 64.3 %
Date: 2017-04-26 Functions: 1 2 50.0 %

          Line data    Source code
       1             : // Copyright 2010 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #include "src/bit-vector.h"
       6             : 
       7             : #include "src/base/bits.h"
       8             : #include "src/utils.h"
       9             : 
      10             : namespace v8 {
      11             : namespace internal {
      12             : 
      13             : #ifdef DEBUG
      14             : void BitVector::Print() {
      15             :   bool first = true;
      16             :   PrintF("{");
      17             :   for (int i = 0; i < length(); i++) {
      18             :     if (Contains(i)) {
      19             :       if (!first) PrintF(",");
      20             :       first = false;
      21             :       PrintF("%d", i);
      22             :     }
      23             :   }
      24             :   PrintF("}\n");
      25             : }
      26             : #endif
      27             : 
      28             : 
      29   855182383 : void BitVector::Iterator::Advance() {
      30   226367171 :   current_++;
      31   226367171 :   uintptr_t val = current_value_;
      32  1036289002 :   while (val == 0) {
      33   628815212 :     current_index_++;
      34   855182383 :     if (Done()) return;
      35   583554660 :     val = target_->data_[current_index_];
      36   583554660 :     current_ = current_index_ << kDataBitShift;
      37             :   }
      38             :   val = SkipZeroBytes(val);
      39             :   val = SkipZeroBits(val);
      40   181106619 :   current_value_ = val >> 1;
      41             : }
      42             : 
      43             : 
      44           0 : int BitVector::Count() const {
      45             :   int count = 0;
      46           0 :   for (int i = 0; i < data_length_; i++) {
      47           0 :     uintptr_t data = data_[i];
      48             :     if (sizeof(data) == 8) {
      49           0 :       count += base::bits::CountPopulation64(data);
      50             :     } else {
      51             :       count += base::bits::CountPopulation32(static_cast<uint32_t>(data));
      52             :     }
      53             :   }
      54           0 :   return count;
      55             : }
      56             : 
      57             : }  // namespace internal
      58             : }  // namespace v8

Generated by: LCOV version 1.10