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