FastLED
3.10.6
Loading...
Searching...
No Matches
◆
reserve()
template<typename T>
void
fl::deque
< T >::reserve
(
fl::size
n
)
inline
Definition at line
537
of file
deque.h
.
537
{
538
if
(
n
<=
capacity
())
return
;
539
// Allocate enough chunks behind the current front-offset to hold n total.
540
fl::size
needed_chunks
= (
mFrontOffset
+
n
+
kChunkSize
- 1) /
kChunkSize
;
541
fl::size
cur_chunks
=
used_chunks
();
542
if
(
cur_chunks
<
needed_chunks
) {
543
fl::size
extra
=
needed_chunks
-
cur_chunks
;
544
// Ensure mMap has room for `extra` more chunks past current back.
545
fl::size
last_used_idx
= (
mSize
== 0) ?
mFrontMapIdx
: (
mFrontMapIdx
+
used_chunks
() - 1);
546
if
(
last_used_idx
+
extra
>=
mMapCapacity
) {
547
grow_map
(0,
extra
);
548
}
549
// Allocate chunks at the back to cover [front .. front+n).
550
fl::size
first_new
= (
mSize
== 0) ?
mFrontMapIdx
: (
mFrontMapIdx
+
cur_chunks
);
551
for
(
fl::size
i
= 0;
i
<
extra
; ++
i
) {
552
if
(
first_new
+
i
>=
mMapCapacity
)
break
;
553
if
(
mMap
[
first_new
+
i
] ==
nullptr
) {
554
mMap
[
first_new
+
i
] =
allocate_chunk
();
555
}
556
}
557
}
558
}
fl::deque::mMapCapacity
fl::size mMapCapacity
Definition
deque.h:39
fl::deque::capacity
fl::size capacity() const
Definition
deque.h:523
fl::deque::kChunkSize
static constexpr fl::size kChunkSize
Definition
deque.h:36
fl::deque::mSize
fl::size mSize
Definition
deque.h:42
fl::deque::allocate_chunk
T * allocate_chunk() FL_NO_EXCEPT
Definition
deque.h:45
fl::deque::used_chunks
fl::size used_chunks() const FL_NO_EXCEPT
Definition
deque.h:80
fl::deque::mFrontOffset
fl::size mFrontOffset
Definition
deque.h:41
fl::deque::grow_map
void grow_map(fl::size extra_front, fl::size extra_back) FL_NO_EXCEPT
Definition
deque.h:97
fl::deque::mMap
T ** mMap
Definition
deque.h:38
fl::deque::mFrontMapIdx
fl::size mFrontMapIdx
Definition
deque.h:40
fl::deque
Definition
deque.h:29
fl
deque
Generated on Sun Oct 4 2026 23:09:08 for FastLED by
1.13.2