Coverage Report

Created: 2024-05-20 07:14

/src/skia/src/base/SkTBlockList.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2010 Google Inc.
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
8
#ifndef SkTBlockList_DEFINED
9
#define SkTBlockList_DEFINED
10
11
#include "include/private/base/SkAssert.h"
12
#include "include/private/base/SkDebug.h"
13
#include "include/private/base/SkTo.h"
14
#include "src/base/SkBlockAllocator.h"
15
16
#include <algorithm>
17
#include <cstring>
18
#include <type_traits>
19
#include <utility>
20
21
// Forward declarations for the iterators used by SkTBlockList
22
using IndexFn = int (*)(const SkBlockAllocator::Block*);
23
using NextFn = int (*)(const SkBlockAllocator::Block*, int);
24
template<typename T, typename B> using ItemFn = T (*)(B*, int);
25
template <typename T, bool Forward, bool Const, IndexFn Start, IndexFn End, NextFn Next,
26
          ItemFn<T, typename std::conditional<Const, const SkBlockAllocator::Block,
27
                                                     SkBlockAllocator::Block>::type> Resolve>
28
class BlockIndexIterator;
29
30
/**
31
 * SkTBlockList manages dynamic storage for instances of T, reserving fixed blocks such that
32
 * allocation is amortized across every N instances. In this way it is a hybrid of an array-based
33
 * vector and a linked-list. T can be any type and non-trivial destructors are automatically
34
 * invoked when the SkTBlockList is destructed. The addresses of instances are guaranteed
35
 * not to move except when a list is concatenated to another.
36
 *
37
 * The collection supports storing a templated number of elements inline before heap-allocated
38
 * blocks are made to hold additional instances. By default, the heap blocks are sized to hold the
39
 * same number of items as the inline block. A common pattern is to have the inline size hold only
40
 * a small number of items for the common case and then allocate larger blocks when needed.
41
 *
42
 * If the size of a collection is N, and its block size is B, the complexity of the common
43
 * operations are:
44
 *  - push_back()/emplace_back(): O(1), with malloc O(B)
45
 *  - pop_back(): O(1), with free O(B)
46
 *  - front()/back(): O(1)
47
 *  - reset(): O(N) for non-trivial types, O(N/B) for trivial types
48
 *  - concat(): O(B)
49
 *  - random access: O(N/B)
50
 *  - iteration: O(1) at each step
51
 *
52
 * These characteristics make it well suited for allocating items in a LIFO ordering, or otherwise
53
 * acting as a stack, or simply using it as a typed allocator.
54
 */
55
template <typename T, int StartingItems = 1>
56
class SkTBlockList {
57
public:
58
    /**
59
     * Create an list that defaults to using StartingItems as heap increment and the
60
     * kFixed growth policy (e.g. all allocations will match StartingItems).
61
     */
62
192k
    SkTBlockList() : SkTBlockList(SkBlockAllocator::GrowthPolicy::kFixed) {}
63
64
    /**
65
     * Create an list that defaults to using StartingItems as the heap increment, but with
66
     * the defined growth policy.
67
    */
68
    explicit SkTBlockList(SkBlockAllocator::GrowthPolicy policy)
69
192k
            : SkTBlockList(StartingItems, policy) {}
SkTBlockList<SkRasterClipStack::Rec, 16>::SkTBlockList(SkBlockAllocator::GrowthPolicy)
Line
Count
Source
69
192k
            : SkTBlockList(StartingItems, policy) {}
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::SkTBlockList(SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::SkTBlockList(SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::SkTBlockList(SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::SkTBlockList(SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::SkTBlockList(SkBlockAllocator::GrowthPolicy)
70
71
    /**
72
     * Create an list.
73
     *
74
     * @param   itemsPerBlock   the number of items to allocate at once
75
     * @param   policy          the growth policy for subsequent blocks of items
76
     */
77
    explicit SkTBlockList(int itemsPerBlock,
78
                          SkBlockAllocator::GrowthPolicy policy =
79
                                  SkBlockAllocator::GrowthPolicy::kFixed)
80
            : fAllocator(policy,
81
291k
                         SkBlockAllocator::BlockOverhead<alignof(T)>() + sizeof(T)*itemsPerBlock) {}
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
SkTBlockList<SkRasterClipStack::Rec, 16>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Line
Count
Source
81
192k
                         SkBlockAllocator::BlockOverhead<alignof(T)>() + sizeof(T)*itemsPerBlock) {}
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Line
Count
Source
81
32.8k
                         SkBlockAllocator::BlockOverhead<alignof(T)>() + sizeof(T)*itemsPerBlock) {}
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Line
Count
Source
81
32.8k
                         SkBlockAllocator::BlockOverhead<alignof(T)>() + sizeof(T)*itemsPerBlock) {}
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Line
Count
Source
81
32.8k
                         SkBlockAllocator::BlockOverhead<alignof(T)>() + sizeof(T)*itemsPerBlock) {}
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::SkTBlockList(int, SkBlockAllocator::GrowthPolicy)
82
83
291k
    ~SkTBlockList() { this->reset(); }
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::~SkTBlockList()
SkTBlockList<SkRasterClipStack::Rec, 16>::~SkTBlockList()
Line
Count
Source
83
192k
    ~SkTBlockList() { this->reset(); }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::~SkTBlockList()
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::~SkTBlockList()
Line
Count
Source
83
32.8k
    ~SkTBlockList() { this->reset(); }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::~SkTBlockList()
Line
Count
Source
83
32.8k
    ~SkTBlockList() { this->reset(); }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::~SkTBlockList()
Line
Count
Source
83
32.8k
    ~SkTBlockList() { this->reset(); }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::~SkTBlockList()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::~SkTBlockList()
84
85
    /**
86
     * Adds an item and returns it.
87
     *
88
     * @return the added item.
89
     */
90
0
    T& push_back() {
91
0
        return *new (this->pushItem()) T;
92
0
    }
93
0
    T& push_back(const T& t) {
94
0
        return *new (this->pushItem()) T(t);
95
0
    }
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::push_back(GrShaderVar const&)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::push_back(GrVkUniformHandler::VkUniformInfo const&)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::push_back(skgpu::graphite::Rect const&)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::push_back(skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::push_back(skgpu::graphite::Transform const&)
96
25.1k
    T& push_back(T&& t) {
97
25.1k
        return *new (this->pushItem()) T(std::move(t));
98
25.1k
    }
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::push_back(std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>&&)
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::push_back(skgpu::ganesh::ClipStack::RawElement&&)
Line
Count
Source
96
25.1k
    T& push_back(T&& t) {
97
25.1k
        return *new (this->pushItem()) T(std::move(t));
98
25.1k
    }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::push_back(skgpu::graphite::ClipStack::RawElement&&)
99
100
    template <typename... Args>
101
273k
    T& emplace_back(Args&&... args) {
102
273k
        return *new (this->pushItem()) T(std::forward<Args>(args)...);
103
273k
    }
SkRasterClipStack::Rec& SkTBlockList<SkRasterClipStack::Rec, 16>::emplace_back<SkRasterClip>(SkRasterClip&&)
Line
Count
Source
101
192k
    T& emplace_back(Args&&... args) {
102
192k
        return *new (this->pushItem()) T(std::forward<Args>(args)...);
103
192k
    }
SkRasterClipStack::Rec& SkTBlockList<SkRasterClipStack::Rec, 16>::emplace_back<SkRasterClip&>(SkRasterClip&)
Line
Count
Source
101
45.2k
    T& emplace_back(Args&&... args) {
102
45.2k
        return *new (this->pushItem()) T(std::forward<Args>(args)...);
103
45.2k
    }
Unexecuted instantiation: GrShaderVar& SkTBlockList<GrShaderVar, 1>::emplace_back<SkString const&, SkSLType const&, GrShaderVar::TypeModifier, GrShaderVar::{unnamed type#1}, SkString, SkString>(SkString const&, SkSLType const&, GrShaderVar::TypeModifier&&, GrShaderVar::{unnamed type#1}&&, SkString&&, SkString&&)
Unexecuted instantiation: GrShaderVar& SkTBlockList<GrShaderVar, 1>::emplace_back<SkString, SkSLType const&, GrShaderVar::TypeModifier, GrShaderVar::{unnamed type#1}, SkString, SkString>(SkString&&, SkSLType const&, GrShaderVar::TypeModifier&&, GrShaderVar::{unnamed type#1}&&, SkString&&, SkString&&)
Unexecuted instantiation: skgpu::ganesh::PathTessellator::PathDrawList& SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::emplace_back<SkMatrix const&, SkPath const&, SkRGBA4f<(SkAlphaType)2> const&, skgpu::ganesh::PathTessellator::PathDrawList*&>(SkMatrix const&, SkPath const&, SkRGBA4f<(SkAlphaType)2> const&, skgpu::ganesh::PathTessellator::PathDrawList*&)
Unexecuted instantiation: GrShaderVar& SkTBlockList<GrShaderVar, 1>::emplace_back<char const*, SkSLType, GrShaderVar::TypeModifier>(char const*&&, SkSLType&&, GrShaderVar::TypeModifier&&)
Unexecuted instantiation: skgpu::graphite::DrawList::Draw& SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::emplace_back<skgpu::graphite::Renderer const*&, skgpu::graphite::Transform const&, skgpu::graphite::Geometry const&, skgpu::graphite::Clip const&, skgpu::graphite::DrawOrder&, skgpu::graphite::PaintParams const*&, skgpu::graphite::StrokeStyle const*&>(skgpu::graphite::Renderer const*&, skgpu::graphite::Transform const&, skgpu::graphite::Geometry const&, skgpu::graphite::Clip const&, skgpu::graphite::DrawOrder&, skgpu::graphite::PaintParams const*&, skgpu::graphite::StrokeStyle const*&)
skgpu::ganesh::ClipStack::SaveRecord& SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::emplace_back<SkIRect const&>(SkIRect const&)
Line
Count
Source
101
32.8k
    T& emplace_back(Args&&... args) {
102
32.8k
        return *new (this->pushItem()) T(std::forward<Args>(args)...);
103
32.8k
    }
skgpu::ganesh::ClipStack::SaveRecord& SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::emplace_back<skgpu::ganesh::ClipStack::SaveRecord&, int, int>(skgpu::ganesh::ClipStack::SaveRecord&, int&&, int&&)
Line
Count
Source
101
2.17k
    T& emplace_back(Args&&... args) {
102
2.17k
        return *new (this->pushItem()) T(std::forward<Args>(args)...);
103
2.17k
    }
skgpu::ganesh::ClipStack::Mask& SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::emplace_back<skgpu::ganesh::ClipStack::SaveRecord const&, SkIRect const&>(skgpu::ganesh::ClipStack::SaveRecord const&, SkIRect const&)
Line
Count
Source
101
192
    T& emplace_back(Args&&... args) {
102
192
        return *new (this->pushItem()) T(std::forward<Args>(args)...);
103
192
    }
Unexecuted instantiation: skgpu::graphite::ClipStack::SaveRecord& SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::emplace_back<skgpu::graphite::Rect>(skgpu::graphite::Rect&&)
Unexecuted instantiation: skgpu::graphite::ClipStack::SaveRecord& SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::emplace_back<skgpu::graphite::ClipStack::SaveRecord&, int>(skgpu::graphite::ClipStack::SaveRecord&, int&&)
104
105
    /**
106
     * Move all items from 'other' to the end of this collection. When this returns, 'other' will
107
     * be empty. Items in 'other' may be moved as part of compacting the pre-allocated start of
108
     * 'other' into this list (using T's move constructor or memcpy if T is trivially copyable), but
109
     * this is O(StartingItems) and not O(N). All other items are concatenated in O(1).
110
     */
111
    template <int SI>
112
    void concat(SkTBlockList<T, SI>&& other);
113
114
    /**
115
     * Allocate, if needed, space to hold N more Ts before another malloc will occur.
116
     */
117
    void reserve(int n) {
118
        int avail = fAllocator->currentBlock()->template avail<alignof(T)>() / sizeof(T);
119
        if (n > avail) {
120
            int reserved = n - avail;
121
            // Don't consider existing bytes since we've already determined how to split the N items
122
            fAllocator->template reserve<alignof(T)>(
123
                    reserved * sizeof(T), SkBlockAllocator::kIgnoreExistingBytes_Flag);
124
        }
125
    }
126
127
    /**
128
     * Remove the last item, only call if count() != 0
129
     */
130
48.0k
    void pop_back() {
131
48.0k
        SkASSERT(this->count() > 0);
132
133
48.0k
        SkBlockAllocator::Block* block = fAllocator->currentBlock();
134
135
        // Run dtor for the popped item
136
48.0k
        int releaseIndex = Last(block);
137
48.0k
        GetItem(block, releaseIndex).~T();
138
139
48.0k
        if (releaseIndex == First(block)) {
140
914
            fAllocator->releaseBlock(block);
141
47.1k
        } else {
142
            // Since this always follows LIFO, the block should always be able to release the memory
143
47.1k
            SkAssertResult(block->release(releaseIndex, releaseIndex + sizeof(T)));
144
47.1k
            block->setMetadata(Decrement(block, releaseIndex));
145
47.1k
        }
146
147
48.0k
        fAllocator->setMetadata(fAllocator->metadata() - 1);
148
48.0k
    }
SkTBlockList<SkRasterClipStack::Rec, 16>::pop_back()
Line
Count
Source
130
45.2k
    void pop_back() {
131
45.2k
        SkASSERT(this->count() > 0);
132
133
45.2k
        SkBlockAllocator::Block* block = fAllocator->currentBlock();
134
135
        // Run dtor for the popped item
136
45.2k
        int releaseIndex = Last(block);
137
45.2k
        GetItem(block, releaseIndex).~T();
138
139
45.2k
        if (releaseIndex == First(block)) {
140
521
            fAllocator->releaseBlock(block);
141
44.7k
        } else {
142
            // Since this always follows LIFO, the block should always be able to release the memory
143
44.7k
            SkAssertResult(block->release(releaseIndex, releaseIndex + sizeof(T)));
144
44.7k
            block->setMetadata(Decrement(block, releaseIndex));
145
44.7k
        }
146
147
45.2k
        fAllocator->setMetadata(fAllocator->metadata() - 1);
148
45.2k
    }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::pop_back()
Line
Count
Source
130
558
    void pop_back() {
131
558
        SkASSERT(this->count() > 0);
132
133
558
        SkBlockAllocator::Block* block = fAllocator->currentBlock();
134
135
        // Run dtor for the popped item
136
558
        int releaseIndex = Last(block);
137
558
        GetItem(block, releaseIndex).~T();
138
139
558
        if (releaseIndex == First(block)) {
140
327
            fAllocator->releaseBlock(block);
141
327
        } else {
142
            // Since this always follows LIFO, the block should always be able to release the memory
143
231
            SkAssertResult(block->release(releaseIndex, releaseIndex + sizeof(T)));
144
231
            block->setMetadata(Decrement(block, releaseIndex));
145
231
        }
146
147
558
        fAllocator->setMetadata(fAllocator->metadata() - 1);
148
558
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::pop_back()
Line
Count
Source
130
50
    void pop_back() {
131
50
        SkASSERT(this->count() > 0);
132
133
50
        SkBlockAllocator::Block* block = fAllocator->currentBlock();
134
135
        // Run dtor for the popped item
136
50
        int releaseIndex = Last(block);
137
50
        GetItem(block, releaseIndex).~T();
138
139
50
        if (releaseIndex == First(block)) {
140
46
            fAllocator->releaseBlock(block);
141
46
        } else {
142
            // Since this always follows LIFO, the block should always be able to release the memory
143
4
            SkAssertResult(block->release(releaseIndex, releaseIndex + sizeof(T)));
144
4
            block->setMetadata(Decrement(block, releaseIndex));
145
4
        }
146
147
50
        fAllocator->setMetadata(fAllocator->metadata() - 1);
148
50
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::pop_back()
Line
Count
Source
130
2.17k
    void pop_back() {
131
2.17k
        SkASSERT(this->count() > 0);
132
133
2.17k
        SkBlockAllocator::Block* block = fAllocator->currentBlock();
134
135
        // Run dtor for the popped item
136
2.17k
        int releaseIndex = Last(block);
137
2.17k
        GetItem(block, releaseIndex).~T();
138
139
2.17k
        if (releaseIndex == First(block)) {
140
20
            fAllocator->releaseBlock(block);
141
2.15k
        } else {
142
            // Since this always follows LIFO, the block should always be able to release the memory
143
2.15k
            SkAssertResult(block->release(releaseIndex, releaseIndex + sizeof(T)));
144
2.15k
            block->setMetadata(Decrement(block, releaseIndex));
145
2.15k
        }
146
147
2.17k
        fAllocator->setMetadata(fAllocator->metadata() - 1);
148
2.17k
    }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::pop_back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::pop_back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::pop_back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::pop_back()
149
150
    /**
151
     * Removes all added items.
152
     */
153
291k
    void reset() {
154
        // Invoke destructors in reverse order if not trivially destructible
155
291k
        if constexpr (!std::is_trivially_destructible<T>::value) {
156
291k
            for (T& t : this->ritems()) {
157
250k
                t.~T();
158
250k
            }
159
291k
        }
160
161
291k
        fAllocator->reset();
162
291k
    }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::reset()
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::reset()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::reset()
SkTBlockList<SkRasterClipStack::Rec, 16>::reset()
Line
Count
Source
153
192k
    void reset() {
154
        // Invoke destructors in reverse order if not trivially destructible
155
192k
        if constexpr (!std::is_trivially_destructible<T>::value) {
156
192k
            for (T& t : this->ritems()) {
157
192k
                t.~T();
158
192k
            }
159
192k
        }
160
161
192k
        fAllocator->reset();
162
192k
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::reset()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::reset()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::reset()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::reset()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::reset()
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::reset()
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::reset()
Line
Count
Source
153
32.8k
    void reset() {
154
        // Invoke destructors in reverse order if not trivially destructible
155
32.8k
        if constexpr (!std::is_trivially_destructible<T>::value) {
156
32.8k
            for (T& t : this->ritems()) {
157
24.6k
                t.~T();
158
24.6k
            }
159
32.8k
        }
160
161
32.8k
        fAllocator->reset();
162
32.8k
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::reset()
Line
Count
Source
153
32.8k
    void reset() {
154
        // Invoke destructors in reverse order if not trivially destructible
155
32.8k
        if constexpr (!std::is_trivially_destructible<T>::value) {
156
32.8k
            for (T& t : this->ritems()) {
157
32.8k
                t.~T();
158
32.8k
            }
159
32.8k
        }
160
161
32.8k
        fAllocator->reset();
162
32.8k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::reset()
Line
Count
Source
153
32.8k
    void reset() {
154
        // Invoke destructors in reverse order if not trivially destructible
155
32.8k
        if constexpr (!std::is_trivially_destructible<T>::value) {
156
32.8k
            for (T& t : this->ritems()) {
157
142
                t.~T();
158
142
            }
159
32.8k
        }
160
161
32.8k
        fAllocator->reset();
162
32.8k
    }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::reset()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::reset()
163
164
    /**
165
     * Returns the item count.
166
     */
167
74.8k
    int count() const {
168
#ifdef SK_DEBUG
169
        // Confirm total count matches sum of block counts
170
        int count = 0;
171
0
        for (const auto* b :fAllocator->blocks()) {
172
0
            if (b->metadata() == 0) {
173
0
                continue; // skip empty
174
0
            }
175
0
            count += (sizeof(T) + Last(b) - First(b)) / sizeof(T);
176
0
        }
177
0
        SkASSERT(count == fAllocator->metadata());
178
#endif
179
74.8k
        return fAllocator->metadata();
180
74.8k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::count() const
Line
Count
Source
167
3.90k
    int count() const {
168
#ifdef SK_DEBUG
169
        // Confirm total count matches sum of block counts
170
        int count = 0;
171
        for (const auto* b :fAllocator->blocks()) {
172
            if (b->metadata() == 0) {
173
                continue; // skip empty
174
            }
175
            count += (sizeof(T) + Last(b) - First(b)) / sizeof(T);
176
        }
177
        SkASSERT(count == fAllocator->metadata());
178
#endif
179
3.90k
        return fAllocator->metadata();
180
3.90k
    }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::count() const
Line
Count
Source
167
70.8k
    int count() const {
168
#ifdef SK_DEBUG
169
        // Confirm total count matches sum of block counts
170
        int count = 0;
171
        for (const auto* b :fAllocator->blocks()) {
172
            if (b->metadata() == 0) {
173
                continue; // skip empty
174
            }
175
            count += (sizeof(T) + Last(b) - First(b)) / sizeof(T);
176
        }
177
        SkASSERT(count == fAllocator->metadata());
178
#endif
179
70.8k
        return fAllocator->metadata();
180
70.8k
    }
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::count() const
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::count() const
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::count() const
Unexecuted instantiation: SkTBlockList<SkRasterClipStack::Rec, 16>::count() const
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::count() const
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::count() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::count() const
181
182
    /**
183
     * Is the count 0?
184
     */
185
0
    bool empty() const { return this->count() == 0; }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::empty() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::empty() const
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::empty() const
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::empty() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::empty() const
186
187
    /**
188
     * Access first item, only call if count() != 0
189
     */
190
    T& front() {
191
        // This assumes that the head block actually have room to store the first item.
192
        static_assert(StartingItems >= 1);
193
        SkASSERT(this->count() > 0 && fAllocator->headBlock()->metadata() > 0);
194
        return GetItem(fAllocator->headBlock(), First(fAllocator->headBlock()));
195
    }
196
    const T& front() const {
197
        SkASSERT(this->count() > 0 && fAllocator->headBlock()->metadata() > 0);
198
        return GetItem(fAllocator->headBlock(), First(fAllocator->headBlock()));
199
    }
200
201
    /**
202
     * Access last item, only call if count() != 0
203
     */
204
749k
    T& back() {
205
749k
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
206
749k
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
207
749k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::back()
Line
Count
Source
204
50
    T& back() {
205
50
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
206
50
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
207
50
    }
SkTBlockList<SkRasterClipStack::Rec, 16>::back()
Line
Count
Source
204
655k
    T& back() {
205
655k
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
206
655k
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
207
655k
    }
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::back()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::back()
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::back()
Line
Count
Source
204
53
    T& back() {
205
53
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
206
53
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
207
53
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::back()
Line
Count
Source
204
94.1k
    T& back() {
205
94.1k
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
206
94.1k
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
207
94.1k
    }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::back()
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::back()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::back()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::back()
208
2.84M
    const T& back() const {
209
2.84M
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
210
2.84M
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
211
2.84M
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::back() const
Line
Count
Source
208
488k
    const T& back() const {
209
488k
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
210
488k
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
211
488k
    }
SkTBlockList<SkRasterClipStack::Rec, 16>::back() const
Line
Count
Source
208
2.30M
    const T& back() const {
209
2.30M
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
210
2.30M
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
211
2.30M
    }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::back() const
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::back() const
Line
Count
Source
208
44.7k
    const T& back() const {
209
44.7k
        SkASSERT(this->count() > 0 && fAllocator->currentBlock()->metadata() > 0);
210
44.7k
        return GetItem(fAllocator->currentBlock(), Last(fAllocator->currentBlock()));
211
44.7k
    }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::back() const
212
213
    /**
214
     * Access item by index. Not an operator[] since it should not be considered constant time.
215
     * Use for-range loops by calling items() or ritems() instead to access all added items in order
216
     */
217
0
    T& item(int i) {
218
0
        SkASSERT(i >= 0 && i < this->count());
219
220
        // Iterate over blocks until we find the one that contains i.
221
0
        for (auto* b : fAllocator->blocks()) {
222
0
            if (b->metadata() == 0) {
223
0
                continue; // skip empty
224
0
            }
225
226
0
            int start = First(b);
227
0
            int end = Last(b) + sizeof(T); // exclusive
228
0
            int index = start + i * sizeof(T);
229
0
            if (index < end) {
230
0
                return GetItem(b, index);
231
0
            } else {
232
0
                i -= (end - start) / sizeof(T);
233
0
            }
234
0
        }
235
0
        SkUNREACHABLE;
236
0
    }
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::item(int)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::item(int)
237
0
    const T& item(int i) const {
238
0
        return const_cast<SkTBlockList*>(this)->item(i);
239
0
    }
240
241
private:
242
    // Let other SkTBlockLists have access (only ever used when T and S are the same but you
243
    // cannot have partial specializations declared as a friend...)
244
    template<typename S, int N> friend class SkTBlockList;
245
    friend class TBlockListTestAccess;  // for fAllocator
246
247
    inline static constexpr size_t StartingSize =
248
            SkBlockAllocator::Overhead<alignof(T)>() + StartingItems * sizeof(T);
249
250
1.05M
    static T& GetItem(SkBlockAllocator::Block* block, int index) {
251
1.05M
        return *static_cast<T*>(block->ptr(index));
252
1.05M
    }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem(SkBlockAllocator::Block*, int)
Line
Count
Source
250
28.6k
    static T& GetItem(SkBlockAllocator::Block* block, int index) {
251
28.6k
        return *static_cast<T*>(block->ptr(index));
252
28.6k
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem(SkBlockAllocator::Block*, int)
Line
Count
Source
250
129k
    static T& GetItem(SkBlockAllocator::Block* block, int index) {
251
129k
        return *static_cast<T*>(block->ptr(index));
252
129k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem(SkBlockAllocator::Block*, int)
Line
Count
Source
250
1.92k
    static T& GetItem(SkBlockAllocator::Block* block, int index) {
251
1.92k
        return *static_cast<T*>(block->ptr(index));
252
1.92k
    }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem(SkBlockAllocator::Block*, int)
SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem(SkBlockAllocator::Block*, int)
Line
Count
Source
250
893k
    static T& GetItem(SkBlockAllocator::Block* block, int index) {
251
893k
        return *static_cast<T*>(block->ptr(index));
252
893k
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::GetItem(SkBlockAllocator::Block*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem(SkBlockAllocator::Block*, int)
253
2.85M
    static const T& GetItem(const SkBlockAllocator::Block* block, int index) {
254
2.85M
        return *static_cast<const T*>(block->ptr(index));
255
2.85M
    }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem(SkBlockAllocator::Block const*, int)
Line
Count
Source
253
60.3k
    static const T& GetItem(const SkBlockAllocator::Block* block, int index) {
254
60.3k
        return *static_cast<const T*>(block->ptr(index));
255
60.3k
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem(SkBlockAllocator::Block const*, int)
Line
Count
Source
253
488k
    static const T& GetItem(const SkBlockAllocator::Block* block, int index) {
254
488k
        return *static_cast<const T*>(block->ptr(index));
255
488k
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem(SkBlockAllocator::Block const*, int)
SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem(SkBlockAllocator::Block const*, int)
Line
Count
Source
253
2.30M
    static const T& GetItem(const SkBlockAllocator::Block* block, int index) {
254
2.30M
        return *static_cast<const T*>(block->ptr(index));
255
2.30M
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::GetItem(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem(SkBlockAllocator::Block const*, int)
256
314k
    static int First(const SkBlockAllocator::Block* b) {
257
314k
        return b->firstAlignedOffset<alignof(T)>();
258
314k
    }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First(SkBlockAllocator::Block const*)
Line
Count
Source
256
40.1k
    static int First(const SkBlockAllocator::Block* b) {
257
40.1k
        return b->firstAlignedOffset<alignof(T)>();
258
40.1k
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First(SkBlockAllocator::Block const*)
Line
Count
Source
256
35.0k
    static int First(const SkBlockAllocator::Block* b) {
257
35.0k
        return b->firstAlignedOffset<alignof(T)>();
258
35.0k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First(SkBlockAllocator::Block const*)
Line
Count
Source
256
1.32k
    static int First(const SkBlockAllocator::Block* b) {
257
1.32k
        return b->firstAlignedOffset<alignof(T)>();
258
1.32k
    }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First(SkBlockAllocator::Block const*)
SkTBlockList<SkRasterClipStack::Rec, 16>::First(SkBlockAllocator::Block const*)
Line
Count
Source
256
238k
    static int First(const SkBlockAllocator::Block* b) {
257
238k
        return b->firstAlignedOffset<alignof(T)>();
258
238k
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::First(SkBlockAllocator::Block const*)
259
3.90M
    static int Last(const SkBlockAllocator::Block* b) {
260
3.90M
        return b->metadata();
261
3.90M
    }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last(SkBlockAllocator::Block const*)
Line
Count
Source
259
84.9k
    static int Last(const SkBlockAllocator::Block* b) {
260
84.9k
        return b->metadata();
261
84.9k
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last(SkBlockAllocator::Block const*)
Line
Count
Source
259
617k
    static int Last(const SkBlockAllocator::Block* b) {
260
617k
        return b->metadata();
261
617k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last(SkBlockAllocator::Block const*)
Line
Count
Source
259
1.37k
    static int Last(const SkBlockAllocator::Block* b) {
260
1.37k
        return b->metadata();
261
1.37k
    }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last(SkBlockAllocator::Block const*)
SkTBlockList<SkRasterClipStack::Rec, 16>::Last(SkBlockAllocator::Block const*)
Line
Count
Source
259
3.20M
    static int Last(const SkBlockAllocator::Block* b) {
260
3.20M
        return b->metadata();
261
3.20M
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last(SkBlockAllocator::Block const*)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::Last(SkBlockAllocator::Block const*)
262
0
    static int Increment(const SkBlockAllocator::Block* b, int index) {
263
0
        return index + sizeof(T);
264
0
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<SkRasterClipStack::Rec, 16>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::Increment(SkBlockAllocator::Block const*, int)
265
316k
    static int Decrement(const SkBlockAllocator::Block* b, int index) {
266
316k
        return index - sizeof(T);
267
316k
    }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement(SkBlockAllocator::Block const*, int)
Line
Count
Source
265
43.1k
    static int Decrement(const SkBlockAllocator::Block* b, int index) {
266
43.1k
        return index - sizeof(T);
267
43.1k
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement(SkBlockAllocator::Block const*, int)
Line
Count
Source
265
35.0k
    static int Decrement(const SkBlockAllocator::Block* b, int index) {
266
35.0k
        return index - sizeof(T);
267
35.0k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement(SkBlockAllocator::Block const*, int)
Line
Count
Source
265
1.01k
    static int Decrement(const SkBlockAllocator::Block* b, int index) {
266
1.01k
        return index - sizeof(T);
267
1.01k
    }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement(SkBlockAllocator::Block const*, int)
SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement(SkBlockAllocator::Block const*, int)
Line
Count
Source
265
237k
    static int Decrement(const SkBlockAllocator::Block* b, int index) {
266
237k
        return index - sizeof(T);
267
237k
    }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::Decrement(SkBlockAllocator::Block const*, int)
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Decrement(SkBlockAllocator::Block const*, int)
268
269
298k
    void* pushItem() {
270
        // 'template' required because fAllocator is a template, calling a template member
271
298k
        auto br = fAllocator->template allocate<alignof(T)>(sizeof(T));
272
298k
        SkASSERT(br.fStart == br.fAlignedOffset ||
273
298k
                 br.fAlignedOffset == First(fAllocator->currentBlock()));
274
298k
        br.fBlock->setMetadata(br.fAlignedOffset);
275
298k
        fAllocator->setMetadata(fAllocator->metadata() + 1);
276
298k
        return br.fBlock->ptr(br.fAlignedOffset);
277
298k
    }
SkTBlockList<SkRasterClipStack::Rec, 16>::pushItem()
Line
Count
Source
269
238k
    void* pushItem() {
270
        // 'template' required because fAllocator is a template, calling a template member
271
238k
        auto br = fAllocator->template allocate<alignof(T)>(sizeof(T));
272
238k
        SkASSERT(br.fStart == br.fAlignedOffset ||
273
238k
                 br.fAlignedOffset == First(fAllocator->currentBlock()));
274
238k
        br.fBlock->setMetadata(br.fAlignedOffset);
275
238k
        fAllocator->setMetadata(fAllocator->metadata() + 1);
276
238k
        return br.fBlock->ptr(br.fAlignedOffset);
277
238k
    }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::pushItem()
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::pushItem()
Line
Count
Source
269
25.1k
    void* pushItem() {
270
        // 'template' required because fAllocator is a template, calling a template member
271
25.1k
        auto br = fAllocator->template allocate<alignof(T)>(sizeof(T));
272
25.1k
        SkASSERT(br.fStart == br.fAlignedOffset ||
273
25.1k
                 br.fAlignedOffset == First(fAllocator->currentBlock()));
274
25.1k
        br.fBlock->setMetadata(br.fAlignedOffset);
275
25.1k
        fAllocator->setMetadata(fAllocator->metadata() + 1);
276
25.1k
        return br.fBlock->ptr(br.fAlignedOffset);
277
25.1k
    }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::pushItem()
Line
Count
Source
269
35.0k
    void* pushItem() {
270
        // 'template' required because fAllocator is a template, calling a template member
271
35.0k
        auto br = fAllocator->template allocate<alignof(T)>(sizeof(T));
272
35.0k
        SkASSERT(br.fStart == br.fAlignedOffset ||
273
35.0k
                 br.fAlignedOffset == First(fAllocator->currentBlock()));
274
35.0k
        br.fBlock->setMetadata(br.fAlignedOffset);
275
35.0k
        fAllocator->setMetadata(fAllocator->metadata() + 1);
276
35.0k
        return br.fBlock->ptr(br.fAlignedOffset);
277
35.0k
    }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::pushItem()
Line
Count
Source
269
192
    void* pushItem() {
270
        // 'template' required because fAllocator is a template, calling a template member
271
192
        auto br = fAllocator->template allocate<alignof(T)>(sizeof(T));
272
192
        SkASSERT(br.fStart == br.fAlignedOffset ||
273
192
                 br.fAlignedOffset == First(fAllocator->currentBlock()));
274
192
        br.fBlock->setMetadata(br.fAlignedOffset);
275
192
        fAllocator->setMetadata(fAllocator->metadata() + 1);
276
192
        return br.fBlock->ptr(br.fAlignedOffset);
277
192
    }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::pushItem()
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Transform, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::pushItem()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::pushItem()
278
279
    // N represents the number of items, whereas SkSBlockAllocator takes total bytes, so must
280
    // account for the block allocator's size too.
281
    //
282
    // This class uses the SkBlockAllocator's metadata to track total count of items, and per-block
283
    // metadata to track the index of the last allocated item within each block.
284
    SkSBlockAllocator<StartingSize> fAllocator;
285
286
public:
287
    using Iter   = BlockIndexIterator<T&,       true,  false, &First, &Last,  &Increment, &GetItem>;
288
    using CIter  = BlockIndexIterator<const T&, true,  true,  &First, &Last,  &Increment, &GetItem>;
289
    using RIter  = BlockIndexIterator<T&,       false, false, &Last,  &First, &Decrement, &GetItem>;
290
    using CRIter = BlockIndexIterator<const T&, false, true,  &Last,  &First, &Decrement, &GetItem>;
291
292
    /**
293
     * Iterate over all items in allocation order (oldest to newest) using a for-range loop:
294
     *
295
     *   for (auto&& T : this->items()) {}
296
     */
297
0
    Iter   items() { return Iter(fAllocator.allocator()); }
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::items()
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::items()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::items()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::items()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::items()
298
0
    CIter  items() const { return CIter(fAllocator.allocator()); }
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::items() const
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::items() const
Unexecuted instantiation: SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::items() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::items() const
Unexecuted instantiation: SkTBlockList<skgpu::graphite::Rect, 16>::items() const
299
300
    // Iterate from newest to oldest using a for-range loop.
301
298k
    RIter  ritems() { return RIter(fAllocator.allocator()); }
Unexecuted instantiation: SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::ritems()
Unexecuted instantiation: SkTBlockList<GrShaderVar, 1>::ritems()
Unexecuted instantiation: SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::ritems()
SkTBlockList<SkRasterClipStack::Rec, 16>::ritems()
Line
Count
Source
301
192k
    RIter  ritems() { return RIter(fAllocator.allocator()); }
Unexecuted instantiation: SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::ritems()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::ritems()
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::ritems()
Line
Count
Source
301
35.9k
    RIter  ritems() { return RIter(fAllocator.allocator()); }
SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::ritems()
Line
Count
Source
301
32.8k
    RIter  ritems() { return RIter(fAllocator.allocator()); }
SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::ritems()
Line
Count
Source
301
36.5k
    RIter  ritems() { return RIter(fAllocator.allocator()); }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::ritems()
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::ritems()
302
9.78k
    CRIter ritems() const { return CRIter(fAllocator.allocator()); }
SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::ritems() const
Line
Count
Source
302
9.78k
    CRIter ritems() const { return CRIter(fAllocator.allocator()); }
Unexecuted instantiation: SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::ritems() const
303
};
304
305
template <typename T, int SI1>
306
template <int SI2>
307
void SkTBlockList<T, SI1>::concat(SkTBlockList<T, SI2>&& other) {
308
    // Optimize the common case where the list to append only has a single item
309
    if (other.empty()) {
310
        return;
311
    } else if (other.count() == 1) {
312
        this->push_back(other.back());
313
        other.pop_back();
314
        return;
315
    }
316
317
    // Manually move all items in other's head block into this list; all heap blocks from 'other'
318
    // will be appended to the block linked list (no per-item moves needed then).
319
    int headItemCount = 0;
320
    SkBlockAllocator::Block* headBlock = other.fAllocator->headBlock();
321
    SkDEBUGCODE(int oldCount = this->count();)
322
    if (headBlock->metadata() > 0) {
323
        int headStart = First(headBlock);
324
        int headEnd = Last(headBlock) + sizeof(T); // exclusive
325
        headItemCount = (headEnd - headStart) / sizeof(T);
326
        int avail = fAllocator->currentBlock()->template avail<alignof(T)>() / sizeof(T);
327
        if (headItemCount > avail) {
328
            // Make sure there is extra room for the items beyond what's already avail. Use the
329
            // kIgnoreGrowthPolicy_Flag to make this reservation as tight as possible since
330
            // 'other's heap blocks will be appended after it and any extra space is wasted.
331
            fAllocator->template reserve<alignof(T)>((headItemCount - avail) * sizeof(T),
332
                                                     SkBlockAllocator::kIgnoreExistingBytes_Flag |
333
                                                     SkBlockAllocator::kIgnoreGrowthPolicy_Flag);
334
        }
335
336
        if constexpr (std::is_trivially_copy_constructible<T>::value) {
337
            // memcpy all items at once (or twice between current and reserved space).
338
            SkASSERT(std::is_trivially_destructible<T>::value);
339
            auto copy = [](SkBlockAllocator::Block* src, int start, SkBlockAllocator* dst, int n) {
340
                auto target = dst->template allocate<alignof(T)>(n * sizeof(T));
341
                memcpy(target.fBlock->ptr(target.fAlignedOffset), src->ptr(start), n * sizeof(T));
342
                target.fBlock->setMetadata(target.fAlignedOffset + (n - 1) * sizeof(T));
343
            };
344
345
            if (avail > 0) {
346
                // Copy 0 to avail items into existing tail block
347
                copy(headBlock, headStart, fAllocator.allocator(), std::min(headItemCount, avail));
348
            }
349
            if (headItemCount > avail) {
350
                // Copy (head count - avail) into the extra reserved space
351
                copy(headBlock, headStart + avail * sizeof(T),
352
                     fAllocator.allocator(), headItemCount - avail);
353
            }
354
            fAllocator->setMetadata(fAllocator->metadata() + headItemCount);
355
        } else {
356
            // Move every item over one at a time
357
            for (int i = headStart; i < headEnd; i += sizeof(T)) {
358
                T& toMove = GetItem(headBlock, i);
359
                this->push_back(std::move(toMove));
360
                // Anything of interest should have been moved, but run this since T isn't
361
                // a trusted type.
362
                toMove.~T(); // NOLINT(bugprone-use-after-move): calling dtor always allowed
363
            }
364
        }
365
366
        other.fAllocator->releaseBlock(headBlock);
367
    }
368
369
    // other's head block must have been fully copied since it cannot be stolen
370
    SkASSERT(other.fAllocator->headBlock()->metadata() == 0 &&
371
             fAllocator->metadata() == oldCount + headItemCount);
372
    fAllocator->stealHeapBlocks(other.fAllocator.allocator());
373
    fAllocator->setMetadata(fAllocator->metadata() +
374
                            (other.fAllocator->metadata() - headItemCount));
375
    other.fAllocator->setMetadata(0);
376
}
377
378
/**
379
 * BlockIndexIterator provides a reusable iterator template for collections built on top of a
380
 * SkBlockAllocator, where each item is of the same type, and the index to an item can be iterated
381
 * over in a known manner. It supports const and non-const, and forward and reverse, assuming it's
382
 * provided with proper functions for starting, ending, and advancing.
383
 */
384
template <typename T,    // The element type (including any modifiers)
385
          bool Forward,  // Are indices within a block increasing or decreasing with iteration?
386
          bool Const,    // Whether or not T is const
387
          IndexFn Start, // Returns the index of the first valid item in a block
388
          IndexFn End,   // Returns the index of the last valid item (so it is inclusive)
389
          NextFn Next,   // Returns the next index given the current index
390
          ItemFn<T, typename std::conditional<Const, const SkBlockAllocator::Block,
391
                                                     SkBlockAllocator::Block>::type> Resolve>
392
class BlockIndexIterator {
393
    using BlockIter = typename SkBlockAllocator::BlockIter<Forward, Const>;
394
public:
395
307k
    BlockIndexIterator(BlockIter iter) : fBlockIter(iter) {}
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, true>)
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, false>)
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, false>)
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, true>)
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Line
Count
Source
395
192k
    BlockIndexIterator(BlockIter iter) : fBlockIter(iter) {}
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, true>)
Line
Count
Source
395
9.78k
    BlockIndexIterator(BlockIter iter) : fBlockIter(iter) {}
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, false>)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, true>)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, true>)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, true>)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, false>)
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, true>)
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Line
Count
Source
395
35.9k
    BlockIndexIterator(BlockIter iter) : fBlockIter(iter) {}
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Line
Count
Source
395
32.8k
    BlockIndexIterator(BlockIter iter) : fBlockIter(iter) {}
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Line
Count
Source
395
36.5k
    BlockIndexIterator(BlockIter iter) : fBlockIter(iter) {}
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<false, false>)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::BlockIndexIterator(SkBlockAllocator::BlockIter<true, false>)
396
397
    class Item {
398
    public:
399
577k
        bool operator!=(const Item& other) const {
400
577k
            return other.fBlock != fBlock || (SkToBool(*fBlock) && other.fIndex != fIndex);
401
577k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item const&) const
Line
Count
Source
399
24.6k
        bool operator!=(const Item& other) const {
400
24.6k
            return other.fBlock != fBlock || (SkToBool(*fBlock) && other.fIndex != fIndex);
401
24.6k
        }
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item const&) const
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::Item::operator!=(BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::Item const&) const
Line
Count
Source
399
385k
        bool operator!=(const Item& other) const {
400
385k
            return other.fBlock != fBlock || (SkToBool(*fBlock) && other.fIndex != fIndex);
401
385k
        }
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator!=(BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::operator!=(BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item const&) const
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item const&) const
Line
Count
Source
399
63.8k
        bool operator!=(const Item& other) const {
400
63.8k
            return other.fBlock != fBlock || (SkToBool(*fBlock) && other.fIndex != fIndex);
401
63.8k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::Item const&) const
Line
Count
Source
399
65.7k
        bool operator!=(const Item& other) const {
400
65.7k
            return other.fBlock != fBlock || (SkToBool(*fBlock) && other.fIndex != fIndex);
401
65.7k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::Item const&) const
Line
Count
Source
399
37.5k
        bool operator!=(const Item& other) const {
400
37.5k
            return other.fBlock != fBlock || (SkToBool(*fBlock) && other.fIndex != fIndex);
401
37.5k
        }
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item const&) const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator!=(BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item const&) const
402
403
271k
        T operator*() const {
404
271k
            SkASSERT(*fBlock);
405
271k
            return Resolve(*fBlock, fIndex);
406
271k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
Line
Count
Source
403
15.5k
        T operator*() const {
404
15.5k
            SkASSERT(*fBlock);
405
15.5k
            return Resolve(*fBlock, fIndex);
406
15.5k
        }
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator*() const
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::Item::operator*() const
Line
Count
Source
403
192k
        T operator*() const {
404
192k
            SkASSERT(*fBlock);
405
192k
            return Resolve(*fBlock, fIndex);
406
192k
        }
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::operator*() const
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
Line
Count
Source
403
28.0k
        T operator*() const {
404
28.0k
            SkASSERT(*fBlock);
405
28.0k
            return Resolve(*fBlock, fIndex);
406
28.0k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::Item::operator*() const
Line
Count
Source
403
32.8k
        T operator*() const {
404
32.8k
            SkASSERT(*fBlock);
405
32.8k
            return Resolve(*fBlock, fIndex);
406
32.8k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::Item::operator*() const
Line
Count
Source
403
1.82k
        T operator*() const {
404
1.82k
            SkASSERT(*fBlock);
405
1.82k
            return Resolve(*fBlock, fIndex);
406
1.82k
        }
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::operator*() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator*() const
407
408
269k
        Item& operator++() {
409
269k
            const auto* block = *fBlock;
410
269k
            SkASSERT(block && block->metadata() > 0);
411
269k
            SkASSERT((Forward && Next(block, fIndex) > fIndex) ||
412
269k
                     (!Forward && Next(block, fIndex) < fIndex));
413
269k
            fIndex = Next(block, fIndex);
414
269k
            if ((Forward && fIndex > fEndIndex) || (!Forward && fIndex < fEndIndex)) {
415
264k
                ++fBlock;
416
264k
                this->setIndices();
417
264k
            }
418
269k
            return *this;
419
269k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
Line
Count
Source
408
14.9k
        Item& operator++() {
409
14.9k
            const auto* block = *fBlock;
410
14.9k
            SkASSERT(block && block->metadata() > 0);
411
14.9k
            SkASSERT((Forward && Next(block, fIndex) > fIndex) ||
412
14.9k
                     (!Forward && Next(block, fIndex) < fIndex));
413
14.9k
            fIndex = Next(block, fIndex);
414
14.9k
            if ((Forward && fIndex > fEndIndex) || (!Forward && fIndex < fEndIndex)) {
415
12.2k
                ++fBlock;
416
12.2k
                this->setIndices();
417
12.2k
            }
418
14.9k
            return *this;
419
14.9k
        }
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator++()
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::Item::operator++()
Line
Count
Source
408
192k
        Item& operator++() {
409
192k
            const auto* block = *fBlock;
410
192k
            SkASSERT(block && block->metadata() > 0);
411
192k
            SkASSERT((Forward && Next(block, fIndex) > fIndex) ||
412
192k
                     (!Forward && Next(block, fIndex) < fIndex));
413
192k
            fIndex = Next(block, fIndex);
414
192k
            if ((Forward && fIndex > fEndIndex) || (!Forward && fIndex < fEndIndex)) {
415
192k
                ++fBlock;
416
192k
                this->setIndices();
417
192k
            }
418
192k
            return *this;
419
192k
        }
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::operator++()
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
Line
Count
Source
408
27.9k
        Item& operator++() {
409
27.9k
            const auto* block = *fBlock;
410
27.9k
            SkASSERT(block && block->metadata() > 0);
411
27.9k
            SkASSERT((Forward && Next(block, fIndex) > fIndex) ||
412
27.9k
                     (!Forward && Next(block, fIndex) < fIndex));
413
27.9k
            fIndex = Next(block, fIndex);
414
27.9k
            if ((Forward && fIndex > fEndIndex) || (!Forward && fIndex < fEndIndex)) {
415
26.5k
                ++fBlock;
416
26.5k
                this->setIndices();
417
26.5k
            }
418
27.9k
            return *this;
419
27.9k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::Item::operator++()
Line
Count
Source
408
32.8k
        Item& operator++() {
409
32.8k
            const auto* block = *fBlock;
410
32.8k
            SkASSERT(block && block->metadata() > 0);
411
32.8k
            SkASSERT((Forward && Next(block, fIndex) > fIndex) ||
412
32.8k
                     (!Forward && Next(block, fIndex) < fIndex));
413
32.8k
            fIndex = Next(block, fIndex);
414
32.8k
            if ((Forward && fIndex > fEndIndex) || (!Forward && fIndex < fEndIndex)) {
415
32.8k
                ++fBlock;
416
32.8k
                this->setIndices();
417
32.8k
            }
418
32.8k
            return *this;
419
32.8k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::Item::operator++()
Line
Count
Source
408
1.01k
        Item& operator++() {
409
1.01k
            const auto* block = *fBlock;
410
1.01k
            SkASSERT(block && block->metadata() > 0);
411
1.01k
            SkASSERT((Forward && Next(block, fIndex) > fIndex) ||
412
1.01k
                     (!Forward && Next(block, fIndex) < fIndex));
413
1.01k
            fIndex = Next(block, fIndex);
414
1.01k
            if ((Forward && fIndex > fEndIndex) || (!Forward && fIndex < fEndIndex)) {
415
465
                ++fBlock;
416
465
                this->setIndices();
417
465
            }
418
1.01k
            return *this;
419
1.01k
        }
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::operator++()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::operator++()
420
421
    private:
422
        friend BlockIndexIterator;
423
        using BlockItem = typename BlockIter::Item;
424
425
615k
        Item(BlockItem block) : fBlock(block) {
426
615k
            this->setIndices();
427
615k
        }
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, true>::Item)
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, false>::Item)
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, false>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, true>::Item)
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Line
Count
Source
425
385k
        Item(BlockItem block) : fBlock(block) {
426
385k
            this->setIndices();
427
385k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, true>::Item)
Line
Count
Source
425
19.5k
        Item(BlockItem block) : fBlock(block) {
426
19.5k
            this->setIndices();
427
19.5k
        }
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, false>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, true>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, true>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, true>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, false>::Item)
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, true>::Item)
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Line
Count
Source
425
71.8k
        Item(BlockItem block) : fBlock(block) {
426
71.8k
            this->setIndices();
427
71.8k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Line
Count
Source
425
65.7k
        Item(BlockItem block) : fBlock(block) {
426
65.7k
            this->setIndices();
427
65.7k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Line
Count
Source
425
73.0k
        Item(BlockItem block) : fBlock(block) {
426
73.0k
            this->setIndices();
427
73.0k
        }
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<false, false>::Item)
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::Item(SkBlockAllocator::BlockIter<true, false>::Item)
428
429
880k
        void setIndices() {
430
            // Skip empty blocks
431
926k
            while(*fBlock && (*fBlock)->metadata() == 0) {
432
45.4k
                ++fBlock;
433
45.4k
            }
434
880k
            if (*fBlock) {
435
266k
                fIndex = Start(*fBlock);
436
266k
                fEndIndex = End(*fBlock);
437
614k
            } else {
438
614k
                fIndex = 0;
439
614k
                fEndIndex = 0;
440
614k
            }
441
442
880k
            SkASSERT((Forward && fIndex <= fEndIndex) || (!Forward && fIndex >= fEndIndex));
443
880k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Line
Count
Source
429
31.8k
        void setIndices() {
430
            // Skip empty blocks
431
31.8k
            while(*fBlock && (*fBlock)->metadata() == 0) {
432
0
                ++fBlock;
433
0
            }
434
31.8k
            if (*fBlock) {
435
12.9k
                fIndex = Start(*fBlock);
436
12.9k
                fEndIndex = End(*fBlock);
437
18.8k
            } else {
438
18.8k
                fIndex = 0;
439
18.8k
                fEndIndex = 0;
440
18.8k
            }
441
442
31.8k
            SkASSERT((Forward && fIndex <= fEndIndex) || (!Forward && fIndex >= fEndIndex));
443
31.8k
        }
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::setIndices()
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::Item::setIndices()
Line
Count
Source
429
578k
        void setIndices() {
430
            // Skip empty blocks
431
578k
            while(*fBlock && (*fBlock)->metadata() == 0) {
432
0
                ++fBlock;
433
0
            }
434
578k
            if (*fBlock) {
435
192k
                fIndex = Start(*fBlock);
436
192k
                fEndIndex = End(*fBlock);
437
385k
            } else {
438
385k
                fIndex = 0;
439
385k
                fEndIndex = 0;
440
385k
            }
441
442
578k
            SkASSERT((Forward && fIndex <= fEndIndex) || (!Forward && fIndex >= fEndIndex));
443
578k
        }
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::setIndices()
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Line
Count
Source
429
98.4k
        void setIndices() {
430
            // Skip empty blocks
431
108k
            while(*fBlock && (*fBlock)->metadata() == 0) {
432
9.95k
                ++fBlock;
433
9.95k
            }
434
98.4k
            if (*fBlock) {
435
26.6k
                fIndex = Start(*fBlock);
436
26.6k
                fEndIndex = End(*fBlock);
437
71.7k
            } else {
438
71.7k
                fIndex = 0;
439
71.7k
                fEndIndex = 0;
440
71.7k
            }
441
442
98.4k
            SkASSERT((Forward && fIndex <= fEndIndex) || (!Forward && fIndex >= fEndIndex));
443
98.4k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::Item::setIndices()
Line
Count
Source
429
98.6k
        void setIndices() {
430
            // Skip empty blocks
431
98.6k
            while(*fBlock && (*fBlock)->metadata() == 0) {
432
0
                ++fBlock;
433
0
            }
434
98.6k
            if (*fBlock) {
435
32.8k
                fIndex = Start(*fBlock);
436
32.8k
                fEndIndex = End(*fBlock);
437
65.7k
            } else {
438
65.7k
                fIndex = 0;
439
65.7k
                fEndIndex = 0;
440
65.7k
            }
441
442
98.6k
            SkASSERT((Forward && fIndex <= fEndIndex) || (!Forward && fIndex >= fEndIndex));
443
98.6k
        }
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::Item::setIndices()
Line
Count
Source
429
73.4k
        void setIndices() {
430
            // Skip empty blocks
431
108k
            while(*fBlock && (*fBlock)->metadata() == 0) {
432
35.4k
                ++fBlock;
433
35.4k
            }
434
73.4k
            if (*fBlock) {
435
1.27k
                fIndex = Start(*fBlock);
436
1.27k
                fEndIndex = End(*fBlock);
437
72.2k
            } else {
438
72.2k
                fIndex = 0;
439
72.2k
                fEndIndex = 0;
440
72.2k
            }
441
442
73.4k
            SkASSERT((Forward && fIndex <= fEndIndex) || (!Forward && fIndex >= fEndIndex));
443
73.4k
        }
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::Item::setIndices()
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::Item::setIndices()
444
445
        BlockItem fBlock;
446
        int       fIndex;
447
        int       fEndIndex;
448
    };
449
450
307k
    Item begin() const { return Item(fBlockIter.begin()); }
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::begin() const
Line
Count
Source
450
9.78k
    Item begin() const { return Item(fBlockIter.begin()); }
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::begin() const
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::begin() const
Line
Count
Source
450
192k
    Item begin() const { return Item(fBlockIter.begin()); }
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence> const&, true, true, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::First, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Last, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::Increment, &SkTBlockList<skgpu::graphite::MonotonicValue<skgpu::graphite::CompressedPaintersOrderSequence>, 16>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::begin() const
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::begin() const
Line
Count
Source
450
35.9k
    Item begin() const { return Item(fBlockIter.begin()); }
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::begin() const
Line
Count
Source
450
32.8k
    Item begin() const { return Item(fBlockIter.begin()); }
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::begin() const
Line
Count
Source
450
36.5k
    Item begin() const { return Item(fBlockIter.begin()); }
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::begin() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::begin() const
451
307k
    Item end() const { return Item(fBlockIter.end()); }
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::end() const
Line
Count
Source
451
9.78k
    Item end() const { return Item(fBlockIter.end()); }
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, false, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Decrement, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, false, false, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Decrement, &SkTBlockList<GrShaderVar, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, false, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Decrement, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::end() const
BlockIndexIterator<SkRasterClipStack::Rec&, false, false, &SkTBlockList<SkRasterClipStack::Rec, 16>::Last, &SkTBlockList<SkRasterClipStack::Rec, 16>::First, &SkTBlockList<SkRasterClipStack::Rec, 16>::Decrement, &SkTBlockList<SkRasterClipStack::Rec, 16>::GetItem>::end() const
Line
Count
Source
451
192k
    Item end() const { return Item(fBlockIter.end()); }
Unexecuted instantiation: BlockIndexIterator<GrShaderVar const&, true, true, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<GrShaderVar&, true, false, &SkTBlockList<GrShaderVar, 1>::First, &SkTBlockList<GrShaderVar, 1>::Last, &SkTBlockList<GrShaderVar, 1>::Increment, &SkTBlockList<GrShaderVar, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<GrGLSLVaryingHandler::VaryingInfo&, true, false, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::First, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Last, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::Increment, &SkTBlockList<GrGLSLVaryingHandler::VaryingInfo, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<skgpu::ganesh::PathTessellator::PathDrawList&, false, false, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Last, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::First, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::Decrement, &SkTBlockList<skgpu::ganesh::PathTessellator::PathDrawList, 16>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo const&, true, true, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement const&, false, true, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<GrVkUniformHandler::VkUniformInfo&, true, false, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::First, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Last, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::Increment, &SkTBlockList<GrVkUniformHandler::VkUniformInfo, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::Rect const&, true, true, &SkTBlockList<skgpu::graphite::Rect, 16>::First, &SkTBlockList<skgpu::graphite::Rect, 16>::Last, &SkTBlockList<skgpu::graphite::Rect, 16>::Increment, &SkTBlockList<skgpu::graphite::Rect, 16>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, false, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Decrement, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::DrawList::Draw&, true, false, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::First, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Last, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::Increment, &SkTBlockList<skgpu::graphite::DrawList::Draw, 16>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*> const&, true, true, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::First, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Last, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::Increment, &SkTBlockList<std::__1::pair<skgpu::graphite::DrawPassCommands::Type, void*>, 16>::GetItem>::end() const
BlockIndexIterator<skgpu::ganesh::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::RawElement, 1>::GetItem>::end() const
Line
Count
Source
451
35.9k
    Item end() const { return Item(fBlockIter.end()); }
BlockIndexIterator<skgpu::ganesh::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::SaveRecord, 2>::GetItem>::end() const
Line
Count
Source
451
32.8k
    Item end() const { return Item(fBlockIter.end()); }
BlockIndexIterator<skgpu::ganesh::ClipStack::Mask&, false, false, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Last, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::First, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::Decrement, &SkTBlockList<skgpu::ganesh::ClipStack::Mask, 1>::GetItem>::end() const
Line
Count
Source
451
36.5k
    Item end() const { return Item(fBlockIter.end()); }
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::SaveRecord&, false, false, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Last, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::First, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::Decrement, &SkTBlockList<skgpu::graphite::ClipStack::SaveRecord, 2>::GetItem>::end() const
Unexecuted instantiation: BlockIndexIterator<skgpu::graphite::ClipStack::RawElement&, true, false, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::First, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Last, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::Increment, &SkTBlockList<skgpu::graphite::ClipStack::RawElement, 1>::GetItem>::end() const
452
453
private:
454
    BlockIter fBlockIter;
455
};
456
457
#endif