Commit Graph

17 Commits

Author SHA1 Message Date
Niels Lohmann 366f3d26e5 Replace snprintf with a branch-free writer for \uXXXX escapes (#5235)
* Replace snprintf with a branch-free writer for \uXXXX escapes

dump_escaped called std::snprintf(..., "\u%04x", ...) once per escaped
code point in the string serialization hot path. snprintf re-parses
the format string and pulls in locale/printf machinery on every call,
which is far heavier than the fixed 6-/12-byte output warrants. This
is hot for any string containing control characters, and for all
non-ASCII text when ensure_ascii is set.

Replace it with write_u_escape, a small helper that writes the escape
directly into string_buffer via a nibble-to-hex lookup table, mirroring
the existing hand-rolled dump_integer fast path in the same file.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* Fix clang-tidy avoid-c-arrays warning in write_u_escape

Use a const char* rather than a char[] lookup table, matching the
existing hex_bytes helper in the same file.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* ♻️ adjust write_u_escape signature

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

---------

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2026-07-08 20:25:13 +02:00
Niels Lohmann 515d994acb 🦉 adjust year (#5044)
Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2026-01-01 20:00:39 +01:00
Niels Lohmann 54be9b04f0 🦉 update REUSE (#4960) 2025-10-23 06:56:36 +02:00
Niels Lohmann e02de2f971 Update to Doctest 2.4.12 (#4771)
* 🤜 Doctest 2.4.12

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🎓 fix warnings

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

---------

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2025-05-15 19:25:27 +02:00
Niels Lohmann 1705bfe914 🔫 set version to 3.12.0 (#4727)
Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2025-04-11 10:41:14 +02:00
Niels Lohmann f06604fce0 Bump the copyright years (#4606)
* 🦉 bump the copyright years

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🦉 bump the copyright years

Signed-off-by: Niels Lohmann <mail@nlohmann.me>

* 🦉 bump the copyright years

Signed-off-by: Niels Lohmann <niels.lohmann@gmail.com>

---------

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
Signed-off-by: Niels Lohmann <niels.lohmann@gmail.com>
2025-01-19 17:04:17 +01:00
Niels Lohmann 1b9a9d1f21 Update licenses (#4521)
* 🦉 update licenses

* 🦉 update licenses
2024-11-29 17:38:42 +01:00
Niels Lohmann c35d260c2f Suppress Clang-Tidy warnings (#4276) 2024-01-28 14:04:07 +01:00
Niels Lohmann 9cca280a4d JSON for Modern C++ 3.11.3 (#4222) 2023-11-28 22:36:31 +01:00
Niels Lohmann f56c6e2e30 Update documentation for the next release (#4216) 2023-11-26 15:51:19 +01:00
Niels Lohmann a0c1318830 Fix CI + new Doctest (#3985) 2023-05-21 17:23:18 +02:00
Niels Lohmann 58bd97e2b1 Add clang-tools to required tools for ci_static_analysis_clang (#3724)
* 🧛 add clang-tools to required tools for ci_static_analysis_clang

* 🎓 update Clang-Tidy warning selection

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings

* 🎓 fix Clang-Tidy warnings (#3738)

*  revert fix

*  revert fix

* 🎓 fix Clang-Tidy warnings (#3739)

Co-authored-by: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
2022-09-13 12:58:26 +02:00
Niels Lohmann 9d69186291 🔫 set version to 3.11.2 2022-08-12 15:04:06 +02:00
Niels Lohmann f2020da0dd 🔫 set version to 3.11.1 2022-08-01 23:27:58 +02:00
Niels Lohmann ce0e13ccea 🔫 set version to 3.11.0 2022-07-31 23:19:06 +02:00
Niels Lohmann 527da54dcb Use REUSE framework (#3546)
* 🦉 add licenses

* 👷 add REUSE compliance check

* 📡 add badge for REUSE

Co-authored-by: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
2022-07-20 12:38:07 +02:00
Niels Lohmann b21c345179 Reorganize directories (#3462)
* 🦃 move files
* 🦃 rename doc folder to docs
* 🦃 rename test folder to tests
2022-05-01 09:41:50 +02:00