mirror of
https://github.com/nlohmann/json.git
synced 2026-02-22 03:16:25 +00:00
Prevent memory leak when exception is thrown in adl_serializer::to_json (#3901)
Co-authored-by: barcode <barcode@example.com>
This commit is contained in:
@@ -872,7 +872,7 @@ TEST_CASE("constructors")
|
||||
float const n = 42.23f;
|
||||
json const j(n);
|
||||
CHECK(j.type() == json::value_t::number_float);
|
||||
CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
|
||||
CHECK(j.m_data.m_value.number_float == Approx(j_reference.m_data.m_value.number_float));
|
||||
}
|
||||
|
||||
SECTION("double")
|
||||
@@ -880,7 +880,7 @@ TEST_CASE("constructors")
|
||||
double const n = 42.23;
|
||||
json const j(n);
|
||||
CHECK(j.type() == json::value_t::number_float);
|
||||
CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
|
||||
CHECK(j.m_data.m_value.number_float == Approx(j_reference.m_data.m_value.number_float));
|
||||
}
|
||||
|
||||
SECTION("long double")
|
||||
@@ -888,28 +888,28 @@ TEST_CASE("constructors")
|
||||
long double const n = 42.23L;
|
||||
json const j(n);
|
||||
CHECK(j.type() == json::value_t::number_float);
|
||||
CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
|
||||
CHECK(j.m_data.m_value.number_float == Approx(j_reference.m_data.m_value.number_float));
|
||||
}
|
||||
|
||||
SECTION("floating-point literal without suffix")
|
||||
{
|
||||
json const j(42.23);
|
||||
CHECK(j.type() == json::value_t::number_float);
|
||||
CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
|
||||
CHECK(j.m_data.m_value.number_float == Approx(j_reference.m_data.m_value.number_float));
|
||||
}
|
||||
|
||||
SECTION("integer literal with f suffix")
|
||||
{
|
||||
json const j(42.23f);
|
||||
CHECK(j.type() == json::value_t::number_float);
|
||||
CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
|
||||
CHECK(j.m_data.m_value.number_float == Approx(j_reference.m_data.m_value.number_float));
|
||||
}
|
||||
|
||||
SECTION("integer literal with l suffix")
|
||||
{
|
||||
json const j(42.23L);
|
||||
CHECK(j.type() == json::value_t::number_float);
|
||||
CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
|
||||
CHECK(j.m_data.m_value.number_float == Approx(j_reference.m_data.m_value.number_float));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user