Coverage Report

Created: 2024-09-08 06:18

/src/bloaty/third_party/re2/util/pod_array.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2018 The RE2 Authors.  All Rights Reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4
5
#ifndef UTIL_POD_ARRAY_H_
6
#define UTIL_POD_ARRAY_H_
7
8
#include <memory>
9
#include <type_traits>
10
11
namespace re2 {
12
13
template <typename T>
14
class PODArray {
15
 public:
16
  static_assert(std::is_pod<T>::value,
17
                "T must be POD");
18
19
  PODArray()
20
0
      : ptr_() {}
Unexecuted instantiation: re2::PODArray<unsigned int>::PODArray()
Unexecuted instantiation: re2::PODArray<char const*>::PODArray()
Unexecuted instantiation: re2::PODArray<re2::Job>::PODArray()
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::PODArray()
Unexecuted instantiation: re2::PODArray<int>::PODArray()
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::PODArray()
Unexecuted instantiation: re2::PODArray<re2::NFA::AddState>::PODArray()
Unexecuted instantiation: re2::PODArray<unsigned short>::PODArray()
Unexecuted instantiation: re2::PODArray<unsigned char>::PODArray()
21
  explicit PODArray(int len)
22
0
      : ptr_(std::allocator<T>().allocate(len), Deleter(len)) {}
Unexecuted instantiation: re2::PODArray<int>::PODArray(int)
Unexecuted instantiation: re2::PODArray<re2::SparseArray<int>::IndexValue>::PODArray(int)
Unexecuted instantiation: re2::PODArray<re2::Job>::PODArray(int)
Unexecuted instantiation: re2::PODArray<unsigned int>::PODArray(int)
Unexecuted instantiation: re2::PODArray<char const*>::PODArray(int)
Unexecuted instantiation: re2::PODArray<re2::Regexp*>::PODArray(int)
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::PODArray(int)
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::PODArray(int)
Unexecuted instantiation: re2::PODArray<re2::NFA::AddState>::PODArray(int)
Unexecuted instantiation: re2::PODArray<re2::InstCond>::PODArray(int)
Unexecuted instantiation: re2::PODArray<unsigned char>::PODArray(int)
Unexecuted instantiation: re2::PODArray<unsigned short>::PODArray(int)
23
24
0
  T* data() const {
25
0
    return ptr_.get();
26
0
  }
Unexecuted instantiation: re2::PODArray<re2::SparseArray<int>::IndexValue>::data() const
Unexecuted instantiation: re2::PODArray<unsigned short>::data() const
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::data() const
Unexecuted instantiation: re2::PODArray<re2::Job>::data() const
Unexecuted instantiation: re2::PODArray<unsigned int>::data() const
Unexecuted instantiation: re2::PODArray<char const*>::data() const
Unexecuted instantiation: re2::PODArray<re2::Regexp*>::data() const
Unexecuted instantiation: re2::PODArray<int>::data() const
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::data() const
Unexecuted instantiation: re2::PODArray<re2::NFA::AddState>::data() const
Unexecuted instantiation: re2::PODArray<unsigned char>::data() const
27
28
0
  int size() const {
29
0
    return ptr_.get_deleter().len_;
30
0
  }
Unexecuted instantiation: re2::PODArray<re2::Job>::size() const
Unexecuted instantiation: re2::PODArray<char const*>::size() const
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::size() const
Unexecuted instantiation: re2::PODArray<int>::size() const
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::size() const
Unexecuted instantiation: re2::PODArray<re2::SparseArray<int>::IndexValue>::size() const
31
32
0
  T& operator[](int pos) const {
33
0
    return ptr_[pos];
34
0
  }
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::operator[](int) const
Unexecuted instantiation: re2::PODArray<unsigned int>::operator[](int) const
Unexecuted instantiation: re2::PODArray<re2::Job>::operator[](int) const
Unexecuted instantiation: re2::PODArray<char const*>::operator[](int) const
Unexecuted instantiation: re2::PODArray<re2::Regexp*>::operator[](int) const
Unexecuted instantiation: re2::PODArray<int>::operator[](int) const
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::operator[](int) const
Unexecuted instantiation: re2::PODArray<re2::SparseArray<int>::IndexValue>::operator[](int) const
Unexecuted instantiation: re2::PODArray<re2::InstCond>::operator[](int) const
Unexecuted instantiation: re2::PODArray<unsigned short>::operator[](int) const
35
36
 private:
37
  struct Deleter {
38
    Deleter()
39
0
        : len_(0) {}
Unexecuted instantiation: re2::PODArray<unsigned int>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<char const*>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<re2::Job>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<int>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<re2::NFA::AddState>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<unsigned short>::Deleter::Deleter()
Unexecuted instantiation: re2::PODArray<unsigned char>::Deleter::Deleter()
40
    explicit Deleter(int len)
41
0
        : len_(len) {}
Unexecuted instantiation: re2::PODArray<int>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<re2::SparseArray<int>::IndexValue>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<re2::Job>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<unsigned int>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<char const*>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<re2::Regexp*>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<re2::NFA::AddState>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<re2::InstCond>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<unsigned char>::Deleter::Deleter(int)
Unexecuted instantiation: re2::PODArray<unsigned short>::Deleter::Deleter(int)
42
43
0
    void operator()(T* ptr) const {
44
0
      std::allocator<T>().deallocate(ptr, len_);
45
0
    }
Unexecuted instantiation: re2::PODArray<re2::SparseArray<int>::IndexValue>::Deleter::operator()(re2::SparseArray<int>::IndexValue*) const
Unexecuted instantiation: re2::PODArray<int>::Deleter::operator()(int*) const
Unexecuted instantiation: re2::PODArray<char const*>::Deleter::operator()(char const**) const
Unexecuted instantiation: re2::PODArray<unsigned int>::Deleter::operator()(unsigned int*) const
Unexecuted instantiation: re2::PODArray<re2::Job>::Deleter::operator()(re2::Job*) const
Unexecuted instantiation: re2::PODArray<re2::Prog::Inst>::Deleter::operator()(re2::Prog::Inst*) const
Unexecuted instantiation: re2::PODArray<re2::Regexp*>::Deleter::operator()(re2::Regexp**) const
Unexecuted instantiation: re2::PODArray<re2::NFA::AddState>::Deleter::operator()(re2::NFA::AddState*) const
Unexecuted instantiation: re2::PODArray<re2::SparseArray<re2::NFA::Thread*>::IndexValue>::Deleter::operator()(re2::SparseArray<re2::NFA::Thread*>::IndexValue*) const
Unexecuted instantiation: re2::PODArray<unsigned char>::Deleter::operator()(unsigned char*) const
Unexecuted instantiation: re2::PODArray<re2::InstCond>::Deleter::operator()(re2::InstCond*) const
Unexecuted instantiation: re2::PODArray<unsigned short>::Deleter::operator()(unsigned short*) const
46
47
    int len_;
48
  };
49
50
  std::unique_ptr<T[], Deleter> ptr_;
51
};
52
53
}  // namespace re2
54
55
#endif  // UTIL_POD_ARRAY_H_