Fix a few issues in the portability headers
authorChristopher Dykes <cdykes@fb.com>
Mon, 9 May 2016 18:36:21 +0000 (11:36 -0700)
committerFacebook Github Bot 4 <facebook-github-bot-4-bot@fb.com>
Mon, 9 May 2016 18:50:29 +0000 (11:50 -0700)
Summary:
This fixes a few issues in the portability headers for MSVC.
Not entirely sure how I managed to cause these in the first place, but this fixes them anyways.

Reviewed By: yfeldblum

Differential Revision: D3271859

fbshipit-source-id: 11a5d35246f29112563ee9079525aa37ced206ff

folly/portability/Memory.cpp
folly/portability/PThread.h
folly/portability/Sockets.cpp
folly/portability/Time.cpp

index a589027d2183f034d8a80d5d928845c2be5c38a4..e5623877ef9faf23fe1447dd4bf5d4e6716c92ed 100644 (file)
@@ -44,7 +44,7 @@ void aligned_free(void* aligned_ptr) {
 #include <malloc.h> // nolint
 
 void* aligned_malloc(size_t size, size_t align) {
-  return _aligned_malloc(size, alignment);
+  return _aligned_malloc(size, align);
 }
 
 void aligned_free(void* aligned_ptr) {
index 4bfecef75f4b05043d6a54d9a82a9659ca56c51c..bd382635651b5c82f6c94dba46a896ea6d67537f 100755 (executable)
@@ -87,7 +87,8 @@ namespace std {
 template <>
 struct hash<pthread_t> {
   std::size_t operator()(const pthread_t& k) const {
-    return 0 ^ std::hash<decltype(k.p)>(k.p) ^ std::hash<decltype(k.x)>(k.x);
+    return 0 ^ std::hash<decltype(k.p)>()(k.p) ^
+        std::hash<decltype(k.x)>()(k.x);
   }
 };
 }
index 380d3863f4e7d18f9900ef785a45d4e0f7ca9ba4..d96091cb51fa8d62f9f676e9e645dca891e6b3be 100755 (executable)
@@ -206,7 +206,7 @@ ssize_t recvmsg(int s, struct msghdr* message, int fl) {
 
   DWORD bytesReceived;
   int res = WSARecvMsg(h, &msg, &bytesReceived, nullptr, nullptr);
-  return res == o ? (ssize_t)bytesReceived : -1;
+  return res == 0 ? (ssize_t)bytesReceived : -1;
 }
 
 ssize_t send(int s, const void* buf, size_t len, int flags) {
index 56bfb79a8566b7b6e42d1ea49497d79c97d8754c..a9160356f33fb7983b1dc76e8cb48a513a115de1 100755 (executable)
@@ -58,6 +58,7 @@ int clock_getres(clockid_t clk_id, struct timespec* ts) {
 }
 #elif defined(_WIN32)
 #include <errno.h>
+#include <locale.h>
 #include <stdint.h>
 #include <stdlib.h>
 
@@ -212,7 +213,7 @@ char* asctime_r(const tm* tm, char* buf) {
 
 char* ctime_r(const time_t* t, char* buf) {
   char tmpBuf[64];
-  if (ctime_s(tmpBuf, t)) {
+  if (ctime_s(tmpBuf, 64, t)) {
     return nullptr;
   }
   // Nothing we can do if the buff is to small :(
@@ -234,7 +235,7 @@ tm* localtime_r(const time_t* t, tm* o) {
 }
 
 int nanosleep(const struct timespec* request, struct timespec* remain) {
-  Sleep((DWORD)((request->tv_sec * 1000) + (request->tv_nsec / 1000000));
+  Sleep((DWORD)((request->tv_sec * 1000) + (request->tv_nsec / 1000000)));
   remain->tv_nsec = 0;
   remain->tv_sec = 0;
   return 0;