summaryrefslogtreecommitdiff
path: root/ruby/src
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/src')
-rw-r--r--ruby/src/IceRuby/Types.cpp8
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");
}