Commit 71b5c881 authored by Christopher Dykes's avatar Christopher Dykes Committed by Facebook Github Bot 3

Always pack small_vector

Summary:
The check was overly restrictive, the conditional packing was originally used to limit it to GCC only (as it used the `__attribute__` directly), but that restriction is no longer needed as `FOLLY_PACK_*` will be defined appropriately for whatever platform we are currently on.

This just switches it to unconditionally use the `FOLLY_PACK_*` macros rather than defining it's own `FB_PACK_*` macros.

See https://github.com/facebook/folly/commit/aafd8ff9151615a8de09682d41d1c29966e4c8fe for where the `FB_PACK_*` macros could originally have been removed.

Reviewed By: yfeldblum

Differential Revision: D3373779

fbshipit-source-id: 9e41b0836f8ba12de4f37aba58c51f841be08b41
parent 9c4ce90b
...@@ -46,20 +46,10 @@ ...@@ -46,20 +46,10 @@
#include <folly/FormatTraits.h> #include <folly/FormatTraits.h>
#include <folly/Malloc.h> #include <folly/Malloc.h>
#include <folly/Portability.h> #include <folly/Portability.h>
#include <folly/SmallLocks.h>
#include <folly/portability/Constexpr.h> #include <folly/portability/Constexpr.h>
#include <folly/portability/Malloc.h> #include <folly/portability/Malloc.h>
#if defined(__GNUC__) && (FOLLY_X64 || FOLLY_PPC64)
# include <folly/SmallLocks.h>
# define FB_PACK_ATTR FOLLY_PACK_ATTR
# define FB_PACK_PUSH FOLLY_PACK_PUSH
# define FB_PACK_POP FOLLY_PACK_POP
#else
# define FB_PACK_ATTR
# define FB_PACK_PUSH
# define FB_PACK_POP
#endif
// Ignore shadowing warnings within this file, so includers can use -Wshadow. // Ignore shadowing warnings within this file, so includers can use -Wshadow.
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow" #pragma GCC diagnostic ignored "-Wshadow"
...@@ -333,7 +323,7 @@ namespace detail { ...@@ -333,7 +323,7 @@ namespace detail {
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
FB_PACK_PUSH FOLLY_PACK_PUSH
template<class Value, template<class Value,
std::size_t RequestedMaxInline = 1, std::size_t RequestedMaxInline = 1,
class PolicyA = void, class PolicyA = void,
...@@ -1033,7 +1023,7 @@ private: ...@@ -1033,7 +1023,7 @@ private:
InternalSizeType* getCapacity() { InternalSizeType* getCapacity() {
return &capacity_; return &capacity_;
} }
} FB_PACK_ATTR; } FOLLY_PACK_ATTR;
struct HeapPtr { struct HeapPtr {
// Lower order bit of heap_ is used as flag to indicate whether capacity is // Lower order bit of heap_ is used as flag to indicate whether capacity is
...@@ -1045,7 +1035,7 @@ private: ...@@ -1045,7 +1035,7 @@ private:
return static_cast<InternalSizeType*>( return static_cast<InternalSizeType*>(
detail::pointerFlagClear(heap_)); detail::pointerFlagClear(heap_));
} }
} FB_PACK_ATTR; } FOLLY_PACK_ATTR;
#if (FOLLY_X64 || FOLLY_PPC64) #if (FOLLY_X64 || FOLLY_PPC64)
typedef unsigned char InlineStorageType[sizeof(value_type) * MaxInline]; typedef unsigned char InlineStorageType[sizeof(value_type) * MaxInline];
...@@ -1114,9 +1104,9 @@ private: ...@@ -1114,9 +1104,9 @@ private:
auto vp = detail::pointerFlagClear(pdata_.heap_); auto vp = detail::pointerFlagClear(pdata_.heap_);
free(vp); free(vp);
} }
} FB_PACK_ATTR u; } FOLLY_PACK_ATTR u;
} FB_PACK_ATTR; } FOLLY_PACK_ATTR;
FB_PACK_POP FOLLY_PACK_POP
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
...@@ -1143,9 +1133,3 @@ struct IndexableTraits<small_vector<T, M, A, B, C>> ...@@ -1143,9 +1133,3 @@ struct IndexableTraits<small_vector<T, M, A, B, C>>
} // namespace folly } // namespace folly
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#ifdef FB_PACK_ATTR
# undef FB_PACK_ATTR
# undef FB_PACK_PUSH
# undef FB_PACK_POP
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment