folly/portability/Memory.cpp: restructure preprocessor conditionals so includes are...
[folly.git] / folly / portability / Memory.cpp
index 3310c0d294a571ad2d2fd0f856f4667ffa26650d..c4a0fff344488cf39f8614c21461a8c413bc3581 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #include <folly/portability/Memory.h>
 
 #include <folly/portability/Config.h>
+#include <folly/portability/Malloc.h>
+
+#include <errno.h>
 
 namespace folly {
 namespace detail {
-#if _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || \
-    (defined(__ANDROID__) && (__ANDROID_API__ > 15))
-#include <errno.h>
+#if _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 ||                    \
+    (defined(__ANDROID__) && (__ANDROID_API__ > 15)) ||                      \
+    (defined(__APPLE__) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6 || \
+                            __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0))
 
 // Use posix_memalign, but mimic the behaviour of memalign
 void* aligned_malloc(size_t size, size_t align) {
@@ -39,17 +43,15 @@ void aligned_free(void* aligned_ptr) {
   free(aligned_ptr);
 }
 #elif defined(_WIN32)
-#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) {
   _aligned_free(aligned_ptr);
 }
 #else
-#include <malloc.h> // nolint
 
 void* aligned_malloc(size_t size, size_t align) {
   return memalign(align, size);