]> git.cworth.org Git - apitrace/blobdiff - retrace/json.hpp
Ignore CGLUpdateContext
[apitrace] / retrace / json.hpp
index 14ff501f5681777a19a56b8321643d2e68239388..2f50a8c55aedc28fccad91c1493031289113cc2b 100644 (file)
 #include <stddef.h>
 #include <wchar.h>
 
+#ifdef _MSC_VER
+#  include <float.h>
+#  define isfinite _finite
+#else
+#  include <math.h> // isfinite
+#endif
+
 #include <iomanip>
+#include <limits>
 #include <ostream>
 #include <string>
 
@@ -327,12 +335,12 @@ public:
 
     template<class T>
     inline void writeNumber(T n) {
-        if (n != n) {
-            // NaN
+        if (!isfinite(n)) {
+            // NaN/Inf
             writeNull();
         } else {
             separator();
-            os << std::dec << std::setprecision(9) << n;
+            os << std::dec << std::setprecision(std::numeric_limits<T>::digits10 + 1) << n;
             value = true;
             space = ' ';
         }