From 8ec98e2c9ea9c0adc15a791feb3d4d4468621743 Mon Sep 17 00:00:00 2001 From: Luke Banicevic <60857954+banaboi@users.noreply.github.com> Date: Mon, 27 Jul 2026 20:11:10 +1000 Subject: [PATCH] adding cleanups to bson writer (#5313) --- .../nlohmann/detail/output/binary_writer.hpp | 18 +++++++++--------- single_include/nlohmann/json.hpp | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/nlohmann/detail/output/binary_writer.hpp b/include/nlohmann/detail/output/binary_writer.hpp index 8fb4c332c..72735c338 100644 --- a/include/nlohmann/detail/output/binary_writer.hpp +++ b/include/nlohmann/detail/output/binary_writer.hpp @@ -985,7 +985,7 @@ class binary_writer void write_bson_entry_header(const string_t& name, const std::uint8_t element_type) { - oa->write_character(to_char_type(element_type)); // boolean + oa->write_character(to_char_type(element_type)); oa->write_characters( reinterpret_cast(name.c_str()), name.size() + 1u); @@ -1070,7 +1070,7 @@ class binary_writer } /*! - @return The size of the BSON-encoded unsigned integer in @a j + @return The size of the BSON-encoded unsigned integer @a value */ static constexpr std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept { @@ -1083,22 +1083,22 @@ class binary_writer @brief Writes a BSON element with key @a name and unsigned @a value */ void write_bson_unsigned(const string_t& name, - const BasicJsonType& j) + const std::uint64_t value) { - if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (value <= static_cast((std::numeric_limits::max)())) { write_bson_entry_header(name, 0x10 /* int32 */); - write_number(static_cast(j.m_data.m_value.number_unsigned), true); + write_number(static_cast(value), true); } - else if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + else if (value <= static_cast((std::numeric_limits::max)())) { write_bson_entry_header(name, 0x12 /* int64 */); - write_number(static_cast(j.m_data.m_value.number_unsigned), true); + write_number(static_cast(value), true); } else { write_bson_entry_header(name, 0x11 /* uint64 */); - write_number(static_cast(j.m_data.m_value.number_unsigned), true); + write_number(value, true); } } @@ -1244,7 +1244,7 @@ class binary_writer return write_bson_integer(name, j.m_data.m_value.number_integer); case value_t::number_unsigned: - return write_bson_unsigned(name, j); + return write_bson_unsigned(name, j.m_data.m_value.number_unsigned); case value_t::string: return write_bson_string(name, *j.m_data.m_value.string); diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 485935212..821863109 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -17770,7 +17770,7 @@ class binary_writer void write_bson_entry_header(const string_t& name, const std::uint8_t element_type) { - oa->write_character(to_char_type(element_type)); // boolean + oa->write_character(to_char_type(element_type)); oa->write_characters( reinterpret_cast(name.c_str()), name.size() + 1u); @@ -17855,7 +17855,7 @@ class binary_writer } /*! - @return The size of the BSON-encoded unsigned integer in @a j + @return The size of the BSON-encoded unsigned integer @a value */ static constexpr std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept { @@ -17868,22 +17868,22 @@ class binary_writer @brief Writes a BSON element with key @a name and unsigned @a value */ void write_bson_unsigned(const string_t& name, - const BasicJsonType& j) + const std::uint64_t value) { - if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (value <= static_cast((std::numeric_limits::max)())) { write_bson_entry_header(name, 0x10 /* int32 */); - write_number(static_cast(j.m_data.m_value.number_unsigned), true); + write_number(static_cast(value), true); } - else if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + else if (value <= static_cast((std::numeric_limits::max)())) { write_bson_entry_header(name, 0x12 /* int64 */); - write_number(static_cast(j.m_data.m_value.number_unsigned), true); + write_number(static_cast(value), true); } else { write_bson_entry_header(name, 0x11 /* uint64 */); - write_number(static_cast(j.m_data.m_value.number_unsigned), true); + write_number(value, true); } } @@ -18029,7 +18029,7 @@ class binary_writer return write_bson_integer(name, j.m_data.m_value.number_integer); case value_t::number_unsigned: - return write_bson_unsigned(name, j); + return write_bson_unsigned(name, j.m_data.m_value.number_unsigned); case value_t::string: return write_bson_string(name, *j.m_data.m_value.string);