|
|
|
@ -30,10 +30,6 @@ |
|
|
|
|
|
|
|
|
|
#include <google/protobuf/util/internal/utility.h> |
|
|
|
|
|
|
|
|
|
#include <cmath> |
|
|
|
|
#include <algorithm> |
|
|
|
|
#include <utility> |
|
|
|
|
|
|
|
|
|
#include <google/protobuf/stubs/common.h> |
|
|
|
|
#include <google/protobuf/wrappers.pb.h> |
|
|
|
|
#include <google/protobuf/descriptor.pb.h> |
|
|
|
@ -301,8 +297,8 @@ bool IsMap(const google::protobuf::Field& field, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
string DoubleAsString(double value) { |
|
|
|
|
if (value == std::numeric_limits<double>::infinity()) return "Infinity"; |
|
|
|
|
if (value == -std::numeric_limits<double>::infinity()) return "-Infinity"; |
|
|
|
|
if (google::protobuf::MathLimits<double>::IsPosInf(value)) return "Infinity"; |
|
|
|
|
if (google::protobuf::MathLimits<double>::IsNegInf(value)) return "-Infinity"; |
|
|
|
|
if (google::protobuf::MathLimits<double>::IsNaN(value)) return "NaN"; |
|
|
|
|
|
|
|
|
|
return SimpleDtoa(value); |
|
|
|
@ -320,8 +316,7 @@ bool SafeStrToFloat(StringPiece str, float *value) { |
|
|
|
|
} |
|
|
|
|
*value = static_cast<float>(double_value); |
|
|
|
|
|
|
|
|
|
if ((*value == numeric_limits<float>::infinity()) || |
|
|
|
|
(*value == -numeric_limits<float>::infinity())) { |
|
|
|
|
if (google::protobuf::MathLimits<float>::IsInf(*value)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|