From 3788b5ba6398ca5fccc5e2736f41da1821ec53bd Mon Sep 17 00:00:00 2001 From: Stephan Lachnit Date: Thu, 24 Oct 2024 16:35:11 +0200 Subject: [PATCH] Revert "Merge pull request #1018 from GeorgFritze/cpp_master" This reverts commit d13d933eea138215791c209456f38b8055d70cba, reversing changes made to 05f654fd64de96fdb91d043a70de86a8f6149e9a. --- include/msgpack/v1/pack.hpp | 22 ---------------------- test/msgpack_basic.cpp | 16 ---------------- 2 files changed, 38 deletions(-) diff --git a/include/msgpack/v1/pack.hpp b/include/msgpack/v1/pack.hpp index 41cff85f8..677c39fa1 100644 --- a/include/msgpack/v1/pack.hpp +++ b/include/msgpack/v1/pack.hpp @@ -1138,17 +1138,6 @@ inline packer& packer::pack_unsigned_long_long(unsigned long lon template inline packer& packer::pack_float(float d) { - if(d == d) { // check for nan - // compare d to limits to avoid undefined behaviour - if(d >= 0 && d <= float(std::numeric_limits::max()) && d == float(uint64_t(d))) { - pack_imp_uint64(uint64_t(d)); - return *this; - } else if(d < 0 && d >= float(std::numeric_limits::min()) && d == float(int64_t(d))) { - pack_imp_int64(int64_t(d)); - return *this; - } - } - union { float f; uint32_t i; } mem; mem.f = d; char buf[5]; @@ -1160,17 +1149,6 @@ inline packer& packer::pack_float(float d) template inline packer& packer::pack_double(double d) { - if(d == d) { // check for nan - // compare d to limits to avoid undefined behaviour - if(d >= 0 && d <= double(std::numeric_limits::max()) && d == double(uint64_t(d))) { - pack_imp_uint64(uint64_t(d)); - return *this; - } else if(d < 0 && d >= double(std::numeric_limits::min()) && d == double(int64_t(d))) { - pack_imp_int64(int64_t(d)); - return *this; - } - } - union { double f; uint64_t i; } mem; mem.f = d; char buf[9]; diff --git a/test/msgpack_basic.cpp b/test/msgpack_basic.cpp index 6026a6e31..24b2a31fc 100644 --- a/test/msgpack_basic.cpp +++ b/test/msgpack_basic.cpp @@ -154,8 +154,6 @@ BOOST_AUTO_TEST_CASE(simple_buffer_float) v.push_back(-0.0); v.push_back(1.0); v.push_back(-1.0); - v.push_back(1.1f); - v.push_back(-1.1f); v.push_back(numeric_limits::min()); v.push_back(numeric_limits::max()); v.push_back(nanf("tag")); @@ -188,12 +186,6 @@ BOOST_AUTO_TEST_CASE(simple_buffer_float) BOOST_CHECK(std::isinf(val2)); else BOOST_CHECK(fabs(val2 - val1) <= kEPS); - - // check for compact storing of float - if (val1 == val1 && val1 >= float(std::numeric_limits::min()) && val1 <= float(std::numeric_limits::max()) && val1 == float(int64_t(val1))) - BOOST_REQUIRE_EQUAL(sbuf.size(),1); - else - BOOST_REQUIRE_EQUAL(sbuf.data()[0],char(0xca)); } } @@ -244,8 +236,6 @@ BOOST_AUTO_TEST_CASE(simple_buffer_double) v.push_back(-0.0); v.push_back(1.0); v.push_back(-1.0); - v.push_back(1.1); - v.push_back(-1.1); v.push_back(numeric_limits::min()); v.push_back(numeric_limits::max()); v.push_back(nanf("tag")); @@ -282,12 +272,6 @@ BOOST_AUTO_TEST_CASE(simple_buffer_double) BOOST_CHECK(std::isinf(val2)); else BOOST_CHECK(fabs(val2 - val1) <= kEPS); - - // check for compact storing of double - if (val1 == val1 && val1 >= double(std::numeric_limits::min()) && val1 <= double(std::numeric_limits::max()) && val1 == double(int64_t(val1))) - BOOST_REQUIRE_EQUAL(sbuf.size(),1); - else - BOOST_REQUIRE_EQUAL(uint8_t(sbuf.data()[0]),uint8_t(0xcb)); } }