Charles Kerr
98fdf2dc0b
perf: use small::vector<> when sorting map keys ( #7928 )
...
I collected stats for a full day & found N=32 to be enough for 99% of cases
2025-12-13 14:45:43 -06:00
Charles Kerr
0fcda4e977
feat: add tr_variant::visit() ( #7923 )
...
* refactor: make tr_variant work with std::visit()
* refactor: use tr_variant::visit() in tr_variant_serde
* refactor: use tr_variant::visit() in tr_variant::merge()
* refactor: simplify JsonWriter
* fix: clang-tidy misc-use-internal-linkage
* test: simplify VariantTest.visitsNodesDepthFirst()
* test: simplify VariantTest.visitNestedJsonSummarizesStructure()
* feat: add tr_variant::clone()
* test: simplify variant tests
* docs: add code comments for tr_variant::merge() and tr_variant::clone()
* fix: add stack-smashing handling for JSON parsing
* fix: clang-tidy modernize-raw-string-literal
* Use writer.Key() for object key names
* refactor: remove unnecessary FMT_COMPILE() macros
* refactor: fix tr_variant::VisitAdapter to preserve the visitor category
chore: remove unnecessary std::cref() calls when calling tr_variant::visitor()
---------
Co-authored-by: Yat Ho <lagoho7@gmail.com >
2025-12-13 13:47:54 -06:00
Yat Ho
c215de34d5
chore: move away from fmt/core.h ( #7557 )
2025-05-06 01:01:12 -05:00
Yat Ho
5a05b37838
feat: support the JSON null type in tr_variant ( #7255 )
2024-12-15 16:50:19 -06:00
Charles Kerr
64d9d57363
chore: fix minor clang-tidy warnings ( #6275 )
2023-11-21 09:02:03 -06:00
Charles Kerr
37f01fac4c
refactor: migrate variant api ( #6238 )
2023-11-10 15:41:32 -06:00
Yat Ho
a2b547fb50
chore: iwyu ( #6201 )
2023-11-03 12:03:26 -05:00
Julien
8ac323d5d6
chore: removed copyright timespans in headers ( #4850 )
2023-11-01 16:11:11 -05:00
Charles Kerr
59c638c63d
refactor: replace tr_variant::is_*() with tr_variant::holds_alternative() ( #5930 )
2023-08-21 16:16:54 -05:00
Charles Kerr
5837603b6f
refactor: make tr_variant follow RAII ( #5923 )
2023-08-20 23:15:23 -05:00
Charles Kerr
a4d205612a
refactor: add tr_variant_serde ( #5903 )
2023-08-17 11:02:45 -05:00
tearfur
5ec4ca550e
chore: iwyu ( #5746 )
2023-07-08 10:24:03 -05:00
Charles Kerr
c364abcb6f
chore: misc-include-cleaner (partial) ( #5738 )
2023-07-06 10:00:07 -05:00
Charles Kerr
8183d7fddf
refactor: utils naming ( #5696 )
...
* chore: rename tr_strvContains to tr_strv_contains
* chore: rename tr_strvStartsWith to tr_strv_starts_with
* chore: rename tr_strvEndsWith to tr_strv_ends_with
* chore: rename tr_strvSep to tr_strv_sep
* chore: rename tr_strvStrip to tr_strv_strip
* chore: rename tr_strvToBuf to tr_strv_to_buf
* refactor: rename tr_saveFile() to tr_file_save()
rename tr_loadFile() to tr_file_read()
rename tr_moveFile() to tr_file_move()
* refactor: rename tr_parseNum() to tr_num_parse()
refactor: rename tr_parseNumRange() to tr_num_parse_range()
* chore: group related functions together in header
2023-06-30 09:49:58 -05:00
Charles Kerr
24bc3d135d
perf: add StackBuffer using small::vector ( #5672 )
...
* perf: use libtransmission::StackBuffer in variant-benc
* perf: use libtransmission::StackBuffer in variant-json
* perf: use libtransmission::StackBuffer in handshake
* perf: use libtransmission::StackBuffer in peer-msgs
* perf: use libtransmission::StackBuffer in peer-io
2023-06-27 10:51:20 -05:00
Charles Kerr
df1adf0e0f
chore: revert small buffer ( #5654 )
...
* Revert "perf: use libsmall in libtransmission, pt 3 (#5653 )"
This reverts commit 3b03494580 .
* Revert "perf: use small in libtransmission (#5650 )"
This reverts commit 559f6f0332 .
2023-06-22 18:42:48 -05:00
Charles Kerr
559f6f0332
perf: use small in libtransmission ( #5650 )
...
* refactor: reimplement Buffer using small
* refactor: use SmallBuffer in announcer-udp
* refactor: use SmallBuffer in variant-json
* refactor: use SmallBuffer in variant-benc
* refactor: use SmallBuffer in handshake
* refactor: use SmallBuffer in peer-msgs
* refactor: delete move semantics on stack-based buffers
2023-06-21 22:41:09 -05:00
Charles Kerr
52b03c2489
refactor: migrate methods to buffer reader ( #5533 )
2023-05-18 16:56:29 -05:00
Charles Kerr
2cf9678737
fix: revert buffer reserve space ( #5528 )
...
* Revert "refactor: use BufferReader, BufferWriter as function args (#5518 )"
This reverts commit c2d48a7d11 .
* Revert "fixup! refactor: add BufferReader, BufferWriter::reserve_space() (#5513 )"
This reverts commit b08e17beef .
* Revert "refactor: add BufferReader, BufferWriter::reserve_space() (#5513 )"
This reverts commit 51fd7056ba .
2023-05-14 17:24:42 -05:00
Charles Kerr
51fd7056ba
refactor: add BufferReader, BufferWriter::reserve_space() ( #5513 )
2023-05-12 11:15:15 -05:00
Charles Kerr
7d86d67bc7
chore: prefer fmt/core.h over fmt/format.h ( #5404 )
2023-04-16 15:34:19 -05:00
Charles Kerr
d72cb67cfb
chore: include directory name in libtransmission #includes ( #5308 )
2023-04-14 14:33:23 -05:00
Julien
4b8cfa2e57
chore: update copyrights to 2023 ( #4834 )
2023-02-11 14:49:42 -06:00
Charles Kerr
948f597d15
refactor: buffer snake case ( #4682 )
2023-01-27 20:12:09 -06:00
Charles Kerr
9678b26984
refactor: misc-use-anonymous-namespace pt. 3 ( #4539 )
2023-01-07 08:27:54 -06:00
Charles Kerr
cc4cbff049
refactor: misc-use-anonymous-namespace pt. 2 ( #4538 )
2023-01-04 22:16:22 -06:00
Charles Kerr
f27c5fa0fa
refactor: make some local pointer vars pointer-to-const ( #4262 )
2022-11-28 09:45:39 -06:00
Charles Kerr
450f1dcadc
refactor: extract tr_buffer class from tr_peerIo ( #3986 )
2022-10-19 11:42:08 -05:00
Charles Kerr
1062ae8f1f
refactor: split tr_parseNum inout var into two vars ( #3748 )
...
build: re-enable cert-err34-c warning
2022-09-02 01:04:09 -05:00
Charles Kerr
4bc1589c5d
refactor: remove tr_win32_utf8_to_native_ex() ( #3590 )
2022-08-05 14:16:25 -05:00
Charles Kerr
8b983b3d1c
refactor: tr_sys_path_resolve() returns a std::string ( #3587 )
...
* refactor: tr_sys_path_resolve returns std::string
2022-08-05 11:36:01 -05:00
Charles Kerr
3428076ecd
fix: cppcoreguidelines-special-member-functions warnings in libtransmission ( #3575 )
2022-08-03 12:03:28 -05:00
Charles Kerr
f79a75cb21
test: fuzz test tr_variantFromBuf() ( #2892 )
...
* test: fuzz test tr_torrent_metainfo.parseBenc()
* fix: better error-checking in benc string parsing
* fix: return benc failure if the parse stack is unbalanced
* fix: stack range error when logging json parse errors
* test: fuzz test tr_variantFromBuf()
2022-04-06 16:39:39 -05:00
Charles Kerr
a134445caa
test: fuzz test tr_torrent_metainfo.parseBenc() ( #2891 )
...
* test: fuzz test tr_urlParse()
* fix: stack error checking in benc parser
* test: fuzz test tr_torrent_metainfo.parseBenc()
2022-04-06 15:26:13 -05:00
Charles Kerr
1d7d17396f
refactor: remove tr_snprintf() pt 2 ( #2871 )
2022-04-03 13:23:00 -05:00
Charles Kerr
ba14ffa74c
refactor: sonarcloud "use if init" statements ( #2587 )
2022-02-07 23:44:31 -06:00
Charles Kerr
ebb2ab6aee
chore: update license spdx abbreviations ( #2582 )
...
Use SPDX license list 3.0 terminology: replace deprecated identifiers
GPL-2.0" and "GPL-3.0" with "GPL-3.0-only" and "GPL-3.0-only".
2022-02-07 10:25:02 -06:00
Charles Kerr
ecef0feb0c
refactor: clang-tidy in libtransmission ( #2578 )
...
* chore: enable cppcoreguidelines-slicing warning
* chore: enable readability-named-parameter warning
* chore: enable bugprone-reserved-identifier check
* chore: enable bugprone-not-null-terminated-result check
* chore: enable bugprone-sizeof-expression check
* chore: enable bugprone-incorrect-roundings check
* chore: enable misc-misplaced-const check
* chore: enable bugprone-suspicious-include check
* chore: enable bugprone-signed-char-misuse check
* chore: enable modernize-raw-string-literal check
* chore: enable readability-static-accessed-through-instance check
* chore: enable readability-implicit-bool-conversion check
* fixup! Merge branch 'main' into refactor/clang-tidy
2022-02-06 22:28:36 -06:00
Charles Kerr
878405f862
Revert "fix: sonarcloud ( #2558 )" ( #2562 )
...
This reverts commit 8b9483f7fb .
2022-02-01 11:30:51 -06:00
Charles Kerr
8b9483f7fb
fix: sonarcloud ( #2558 )
...
* fix: add const modifier for functions
* fix: many sonarcloud use-init-statement warnings
2022-01-31 22:46:27 -06:00
Charles Kerr
9e264250d1
refactor: add benc::Handler::Context ( #2531 )
...
Prerequisite for using the new benc parser in tr_torrent_metainfo:
That code needs to know the span of the bencoded info dict.
2022-01-28 16:46:14 -06:00
Charles Kerr
ac823f3cc4
fix: sonarcloud warnings in new code ( #2500 )
2022-01-24 19:05:24 -06:00
Charles Kerr
e83a57efa3
refactor: re-enable some clang-tidy rules ( #2498 )
2022-01-24 13:07:55 -06:00
Charles Kerr
5efec26a3b
refactor: SAX-like benc parser pt. 1 ( #2490 )
...
* refactor: add SAX-like benc parser
This is the first part of a series of PRs whose end goal is to avoid
the overhead of tr_variant when parsing bencoded data, e.g. when
parsing .torrent files on startup or when parsing announce/scrape
tracker responses.
This PR introduces a SAX-like benc parser, reimplements variant-benc
to use the SAX benc parser (so that we don't have two benc parsers),
and updates the benc + variant tests.
2022-01-24 00:30:00 -06:00
Charles Kerr
df1cca9b57
chore: update copyright years, make notices consistent ( #2463 )
2022-01-20 12:27:56 -06:00
Charles Kerr
b0ee4007ff
refactor: include cleanups ( #2392 )
...
* refactor: include <memory> when using shared_ptr or unique_ptr
* refactor: include <cstdio> iff we use it
* refactor: include <cstring> iff we use it
* refactor: include <cstdlib> iff we use it
* refactor: include <string_view> or <string> iff we use it
* refactor: include <array> iff we use it
* refactor: include <ctime> iff we use it
* refactor: include <cctype> iff we use it
* refactor: misc #include cleanups in libtransmission
2022-01-12 20:13:58 -06:00
Charles Kerr
43b9d5c147
fix: potential infinite loop when parsing benc ( #2389 )
2022-01-10 14:27:05 -06:00
Charles Kerr
46f9582e36
refactor: prefer std::from_chars over strtoul ( #2359 )
2021-12-29 02:28:12 -06:00
Charles Kerr
37a8046ed5
fix: more sonarcloud warnings ( #2324 )
2021-12-16 23:47:51 -06:00
Charles Kerr
42b1362760
refactor: tidy libtransmission includes ( #2316 )
2021-12-15 15:25:42 -06:00