diff --git a/include/prism/defines.h b/include/prism/defines.h index e78c7dd75c..785361728e 100644 --- a/include/prism/defines.h +++ b/include/prism/defines.h @@ -136,17 +136,6 @@ # define PRISM_HAS_FILESYSTEM #endif -/** - * isinf on Windows is defined as accepting a float, but on POSIX systems it - * accepts a float, a double, or a long double. We want to mirror this behavior - * on windows. - */ -#ifdef _WIN32 -# include -# undef isinf -# define isinf(x) (sizeof(x) == sizeof(float) ? !_finitef(x) : !_finite(x)) -#endif - /** * If you build prism with a custom allocator, configure it with * "-D PRISM_XALLOCATOR" to use your own allocator that defines xmalloc, diff --git a/src/prism.c b/src/prism.c index bc516cbf4c..f8a05a79b8 100644 --- a/src/prism.c +++ b/src/prism.c @@ -4142,7 +4142,14 @@ pm_double_parse(pm_parser_t *parser, const pm_token_t *token) { // If errno is set, then it should only be ERANGE. At this point we need to // check if it's infinity (it should be). - if (errno == ERANGE && isinf(value)) { + if ( + errno == ERANGE && +#ifdef _WIN32 + isinf((float) value) +#else + isinf(value) +#endif + ) { int warn_width; const char *ellipsis;