From 7435d54e9751cf5469b7e8a4ad63990d08d9cdda Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Mon, 2 Oct 2017 23:06:41 +0200
Subject: [PATCH] :hammer: clean up

---
 src/json.hpp | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index b15470b6..fee999e1 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -6663,17 +6663,16 @@ class serializer
         const bool is_negative = std::is_same<NumberType, number_integer_t>::value and (x < 0);
         std::size_t i = 0;
 
-        // spare 1 byte for '\0'
-        while (x != 0 and i < number_buffer.size() - 1)
+        while (x != 0)
         {
+            // spare 1 byte for '\0'
+            assert(i < number_buffer.size() - 1);
+
             const auto digit = std::labs(static_cast<long>(x % 10));
             number_buffer[i++] = static_cast<char>('0' + digit);
             x /= 10;
         }
 
-        // make sure the number has been processed completely
-        assert(x == 0);
-
         if (is_negative)
         {
             // make sure there is capacity for the '-'
@@ -6702,20 +6701,6 @@ class serializer
             return;
         }
 
-        // special case for 0.0 and -0.0
-        if (x == 0)
-        {
-            if (std::signbit(x))
-            {
-                o->write_characters("-0.0", 4);
-            }
-            else
-            {
-                o->write_characters("0.0", 3);
-            }
-            return;
-        }
-
         // get number of digits for a text -> float -> text round-trip
         static constexpr auto d = std::numeric_limits<number_float_t>::digits10;