diff --git a/src/node.h b/src/node.h index 677a24f43d6..7a08dc9ef2d 100644 --- a/src/node.h +++ b/src/node.h @@ -61,14 +61,6 @@ #include "v8.h" // NOLINT(build/include_order) #include "node_version.h" // NODE_MODULE_VERSION -#ifdef _WIN32 -# include -typedef SSIZE_T ssize_t; -typedef SIZE_T size_t; -#else // !_WIN32 -# include // size_t, ssize_t -#endif // _WIN32 - // Forward-declare these functions now to stop MSVS from becoming // terminally confused when it's done in node_internals.h namespace node { @@ -192,6 +184,17 @@ void DisplayExceptionLine(v8::Handle message); NODE_EXTERN v8::Local Encode(const void *buf, size_t len, enum encoding encoding = BINARY); +#ifdef _WIN32 +// TODO(tjfontaine) consider changing the usage of ssize_t to ptrdiff_t +#if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) +typedef intptr_t ssize_t; +# define _SSIZE_T_ +# define _SSIZE_T_DEFINED +#endif +#else // !_WIN32 +# include // size_t, ssize_t +#endif // _WIN32 + // Returns -1 if the handle was not valid for decoding NODE_EXTERN ssize_t DecodeBytes(v8::Handle, enum encoding encoding = BINARY);