Max Kellermann
|
fae235197f
|
util/SpanCast: allow ReferenceAsBytes() only with trivially-copyable
Addd the std::has_unique_object_representations_v constraint so we
cast stuff to std::byte only if this would make sense.
|
2024-04-16 12:33:36 +02:00 |
|
Max Kellermann
|
b3a31b69ee
|
util/RedBlackTree: fix lost "right" child while swapping with successor
Fixes a tree corruption bug that led to assertion failures.
|
2024-04-10 13:35:31 +02:00 |
|
Max Kellermann
|
88475f2e2b
|
util/RedBlackTree: swap colors when swapping with successor
Swapping was incomplete without swapping the colors; this led to
assertion failures under certain conditions.
|
2024-04-10 13:35:28 +02:00 |
|
Max Kellermann
|
e0a53d4747
|
util/IntrusiveTreeSet: add debug method Check()
Only for the unit test.
|
2024-04-10 13:35:21 +02:00 |
|
Max Kellermann
|
669cbcd25a
|
util/IntrusiveList: allow the last disposer to destroy the IntrusiveList
Fixes a use-after-free bug in Co::MultiAwaitable::SetReady() when the
last callback frees the Co::MultiAwaitable owner.
|
2024-04-10 13:35:09 +02:00 |
|
Max Kellermann
|
2f7c19f139
|
util/SpanCast: rewrite ToStringView(std::span<std::byte>) to avoid cast ambiguities
|
2024-04-10 13:34:51 +02:00 |
|
Max Kellermann
|
e131f22642
|
util/SpanCast: merge two ToStringView() using std::remove_const_t
|
2024-04-10 13:34:25 +02:00 |
|
Max Kellermann
|
b6afdf1201
|
util/UriUtil: disable path segment stripping
This bug introduced by commit 49ed9dae34
and activated by commit acc1bd6297
caused leading spaces to disappear from the beginning of all file
names.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1961
|
2024-04-03 22:00:36 +02:00 |
|
Max Kellermann
|
99da022775
|
util/IntrusiveSortedList: remove unused class
|
2024-04-03 21:31:08 +02:00 |
|
Max Kellermann
|
5a0bad3b2f
|
util/IntrusiveTreeSet: new class
|
2024-04-03 21:29:34 +02:00 |
|
Max Kellermann
|
6a99f20828
|
util/IntrusiveHashSet: add concept checks to *Operators
This requires adding another template argument and reordering the others.
|
2024-04-03 21:27:37 +02:00 |
|
Max Kellermann
|
1e5c37ee78
|
util/SpanCast: add ToStringView() with non-const std::byte
Without this, we would get std::string_view<std::byte> which makes no
sense.
|
2024-04-03 20:58:03 +02:00 |
|
Max Kellermann
|
02c4512b00
|
util/CharUtil: add IsLowerHexDigit()
|
2024-03-11 15:32:24 +01:00 |
|
Max Kellermann
|
be84b189dc
|
util, io, net, ...: use "#pragma once"
|
2024-03-11 15:32:24 +01:00 |
|
Max Kellermann
|
7f60acdfdd
|
util/CharUtil: add IsUpperAlphaNumericASCII()
|
2024-01-18 18:53:05 +01:00 |
|
Max Kellermann
|
b601f4dc15
|
util/CNumberParser: remove unused function ParseInt64()
|
2024-01-04 21:07:50 +01:00 |
|
Max Kellermann
|
e1eea9d98a
|
util/NumberParser: new library based on std::from_chars()
|
2024-01-04 21:03:37 +01:00 |
|
Max Kellermann
|
393d57b387
|
util/NumberParser: rename to CNumberParser
A new NumberParser library based on std::from_chars() will be added.
|
2024-01-04 21:02:45 +01:00 |
|
Max Kellermann
|
23b4688c44
|
util/ByteOrder: move Packed* classes to separate headers
|
2023-12-22 18:20:46 +01:00 |
|
Max Kellermann
|
ebf1fc7ca4
|
util/IntrusiveList: convert static_assert to concept check
|
2023-11-21 20:42:01 +01:00 |
|
Max Kellermann
|
edfa329e64
|
util/DereferenceIterator: use *declval() to guess the default value type
This allows the iterator to point to another iterator.
|
2023-11-21 20:40:47 +01:00 |
|
Max Kellermann
|
68b19ae087
|
util/SpanCast: add ReferenceAsWritableBytes()
|
2023-11-02 10:50:24 +01:00 |
|
Max Kellermann
|
a073db1e52
|
util/SpanCast: add ReferenceAsBytes()
|
2023-11-02 10:50:00 +01:00 |
|
Max Kellermann
|
10940da381
|
util/Intrusive{List,HashSet}: add "tag" for base hooks
|
2023-11-02 10:48:46 +01:00 |
|
Max Kellermann
|
db5f270f42
|
util/AllocatedString: fix string_view specialization in TotalSize()
|
2023-10-09 14:54:40 +02:00 |
|
Max Kellermann
|
86e7dff2fc
|
util/TextFile: add missing cast
|
2023-10-07 08:39:24 +02:00 |
|
Max Kellermann
|
e5680c712b
|
util/IntrusiveList: add reverse_iterator
|
2023-10-04 16:51:17 +02:00 |
|
Max Kellermann
|
44daa6d3e6
|
util/IntrusiveForwardList: reset last_cache properly in clear()
|
2023-10-04 16:50:46 +02:00 |
|
Max Kellermann
|
5aaa3f50aa
|
util/BindMethod: move SignatureHelper to return type
|
2023-10-04 16:50:25 +02:00 |
|
Max Kellermann
|
7d26cd74c1
|
util/BindMethod: add noexcept
|
2023-10-04 16:50:25 +02:00 |
|
Max Kellermann
|
7e6941acc8
|
util/BindMethod: add constexpr
|
2023-10-04 16:50:25 +02:00 |
|
Max Kellermann
|
63d865666e
|
util/StringBuffer: use using instead of typedef
|
2023-10-04 16:50:25 +02:00 |
|
Max Kellermann
|
5dda4084df
|
util/BindMethod: use using instead of typedef
|
2023-10-04 16:50:25 +02:00 |
|
Max Kellermann
|
19f9238ef0
|
util/BindMethod: fix indent
|
2023-10-04 16:50:25 +02:00 |
|
Max Kellermann
|
5b28a987e5
|
util/IntrusiveForwardList: add method remove_and_dispose_if()
|
2023-09-22 11:32:40 +02:00 |
|
Max Kellermann
|
78d28063c4
|
util/IntrusiveForwardList: push_{front,back}() returns iterator
|
2023-09-22 11:32:33 +02:00 |
|
Max Kellermann
|
6f7dce6dca
|
test/util/TestIntrusiveForwardList: implement size() only if options.constant_time_size is set
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
175524ad02
|
util/IntrusiveForwardList: make end() non-static
So we can have a `const` overload which is important for some
algorithm templates.
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
bfbde72676
|
util/Intrusive*: insertion methods return an iterator
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
f76583a08a
|
util/IntrusiveList: document the erase() return value
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
6d39b401b5
|
util/IntrusiveForwardList: add method iterator_to()
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
f448bfd3f3
|
util/IntrusiveForwardList: add option cache_last
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
64b0587e78
|
util/OptionalField: new library
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
9fe813e572
|
util/IntrusiveForwardList: add pop_front_and_dispose()
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
b0da0bbf8b
|
util/IntrusiveForwardList: pop_front() returns reference
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
5c44082b77
|
util/IntrusiveForwardList: add non-static insert_after() implementation
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
df7ed27b78
|
util/IntrusiveForwardList: fix move operator, really swap counter
|
2023-09-16 22:39:03 +02:00 |
|
Max Kellermann
|
9e802ad721
|
util/StringCompare: add pure attribute
|
2023-09-12 09:34:52 +02:00 |
|
Max Kellermann
|
daf935d310
|
util/HexFormat: add non-const overload
|
2023-09-12 09:11:38 +02:00 |
|
Max Kellermann
|
f68305bf00
|
util/NumberParser: remove obsolete __ANDROID_API__ check
|
2023-09-11 22:12:13 +02:00 |
|