Summary:
`#include` inside a namespace is disallowed when using clang modules. Here I
just unconditionally include them at top level, since they are available in all the
relevant platforms.
Reviewed By: yfeldblum, Orvid
Differential Revision:
D5140355
fbshipit-source-id:
bb87225c1d8f4ac64b90a7aff5f912c13e150e3a
#include <folly/portability/Memory.h>
#include <folly/portability/Config.h>
#include <folly/portability/Memory.h>
#include <folly/portability/Config.h>
+#include <folly/portability/Malloc.h>
+
+#include <errno.h>
namespace folly {
namespace detail {
namespace folly {
namespace detail {
(defined(__ANDROID__) && (__ANDROID_API__ > 15)) || \
(defined(__APPLE__) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6 || \
__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0))
(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) {
// Use posix_memalign, but mimic the behaviour of memalign
void* aligned_malloc(size_t size, size_t align) {
free(aligned_ptr);
}
#elif defined(_WIN32)
free(aligned_ptr);
}
#elif defined(_WIN32)
-#include <malloc.h> // nolint
void* aligned_malloc(size_t size, size_t align) {
return _aligned_malloc(size, align);
void* aligned_malloc(size_t size, size_t align) {
return _aligned_malloc(size, align);
_aligned_free(aligned_ptr);
}
#else
_aligned_free(aligned_ptr);
}
#else
-#include <malloc.h> // nolint
void* aligned_malloc(size_t size, size_t align) {
return memalign(align, size);
void* aligned_malloc(size_t size, size_t align) {
return memalign(align, size);