diff options
Diffstat (limited to 'ruby/src')
-rw-r--r-- | ruby/src/IceRuby/Types.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ruby/src/IceRuby/Types.cpp b/ruby/src/IceRuby/Types.cpp index 8ca6e29cffa..4834320d1e2 100644 --- a/ruby/src/IceRuby/Types.cpp +++ b/ruby/src/IceRuby/Types.cpp @@ -597,7 +597,13 @@ IceRuby::PrimitiveInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectM } assert(TYPE(val) == T_FLOAT); double d = static_cast<double>(RFLOAT_VALUE(val)); - if(isfinite(d) && (d > numeric_limits<float>::max() || d < -numeric_limits<float>::max())) + if( +#if defined(_MSC_VER) && (_MSC_VER <= 1700) + _finite(val) && +#else + isfinite(d) && +#endif + (d > numeric_limits<float>::max() || d < -numeric_limits<float>::max())) { throw RubyException(rb_eTypeError, "value is out of range for a float"); } |