Base type that simply provides better assertion messages.
|
|
constexpr | BaseFramingAllocator (Allocator &allocator) |
| |
| constexpr | ForwardingAllocator (const Capabilities &capabilities) noexcept |
| |
| constexpr | ForwardingAllocator (pw::Allocator &allocator) noexcept |
| |
| constexpr void | Init (pw::Allocator &allocator) |
| |
|
constexpr pw::Allocator & | allocator () |
| |
|
constexpr const pw::Allocator & | allocator () const |
| |
| void * | DoAllocate (Layout layout) override |
| |
| void | DoDeallocate (void *ptr) override |
| |
| bool | DoResize (void *ptr, size_t new_size) override |
| |
| void | DoBeforeReallocate (void *ptr, Layout new_layout) override |
| |
| void | DoAfterReallocateCopy (void *ptr, Layout new_layout, void *new_ptr) override |
| |
| void | DoAfterReallocateDone (Layout new_layout, void *new_ptr) override |
| |
| size_t | DoGetAllocated () const override |
| |
| std::optional< Fragmentation > | DoMeasureFragmentation () const override |
| | Returns fragmentation information for the allocator's memory region.
|
| |
| Result< Layout > | DoGetInfo (InfoType info_type, const void *ptr) const override |
| |
|
constexpr | Allocator () noexcept=default |
| | TODO(b/326509341): Remove when downstream consumers migrate.
|
| |
|
constexpr | Allocator (const Capabilities &capabilities) noexcept |
| |
| virtual void * | DoAllocate (Layout layout)=0 |
| |
| virtual bool | DoResize (void *ptr, size_t new_size) |
| |
| virtual void * | DoReallocate (void *ptr, Layout new_layout) |
| |
| virtual void | DoBeforeReallocate (void *ptr, Layout new_layout) |
| |
| virtual void | DoAfterReallocateCopy (void *ptr, Layout new_layout, void *new_ptr) |
| |
| virtual void | DoAfterReallocateDone (Layout new_layout, void *new_ptr) |
| |
| virtual size_t | DoGetAllocated () const |
| |
| virtual std::optional< Fragmentation > | DoMeasureFragmentation () const |
| | Returns fragmentation information for the allocator's memory region.
|
| |
|
constexpr | Deallocator ()=default |
| | TODO(b/326509341): Remove when downstream consumers migrate.
|
| |
|
constexpr | Deallocator (const Capabilities &capabilities) |
| |
| Result< Layout > | GetInfo (InfoType info_type, const void *ptr) const |
| |
| Result< Layout > | GetRequestedLayout (const void *ptr) const |
| |
| Result< Layout > | GetUsableLayout (const void *ptr) const |
| |
| Result< Layout > | GetAllocatedLayout (const void *ptr) const |
| |
| bool | Recognizes (const void *ptr) const |
| |
| virtual void | DoDeallocate (void *ptr)=0 |
| |
| virtual Result< Layout > | DoGetInfo (InfoType, const void *) const |
| |
|
| static bool | CrashOnUnalignedIfStrict (bool strict, const void *data) |
| |
| static bool | CrashOnBadDataIfStrict (bool strict, const void *data) |
| |
| static bool | CrashOnBadPrefixOffsetIfStrict (bool strict, const void *data, size_t prefix_offset, size_t min_size=0) |
| |
| static bool | CrashOnWrongPrefixOffsetIfStrict (bool strict, const void *data, size_t data_prefix_offset, const void *frame, size_t frame_prefix_offset) |
| |
| static bool | CrashOnBadSuffixOffsetIfStrict (bool strict, const void *data, size_t suffix_offset, size_t usable_size) |
| |
| static bool | CrashOnUnrecognized (bool strict, const void *frame) |
| |
| static void | BeforeReallocate (Allocator &allocator, void *ptr, Layout new_layout) |
| |
| static void | AfterReallocateCopy (Allocator &allocator, void *ptr, Layout new_layout, void *new_ptr) |
| |
| static void | AfterReallocateDone (Allocator &allocator, Layout new_layout, void *new_ptr) |
| |
| static Result< Layout > | GetInfo (const Deallocator &deallocator, InfoType info_type, const void *ptr) |
| |
| static Result< Layout > | GetRequestedLayout (const Deallocator &deallocator, const void *ptr) |
| |
| static Result< Layout > | GetUsableLayout (const Deallocator &deallocator, const void *ptr) |
| |
| static Result< Layout > | GetAllocatedLayout (const Deallocator &deallocator, const void *ptr) |
| |
| static bool | Recognizes (const Deallocator &deallocator, const void *ptr) |
| |
|
|
using | Fragmentation = allocator::Fragmentation |
| |
|
using | Capabilities = allocator::Capabilities |
| |
|
using | Capability = allocator::Capability |
| |
|
using | Layout = allocator::Layout |
| |
| void * | Allocate (Layout layout) |
| |
| template<typename T , int &... kExplicitGuard, std::enable_if_t<!std::is_array_v< T >, int > = 0, typename... Args> |
| T * | New (Args &&... args) |
| |
| template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>, std::enable_if_t< is_bounded_array_v< T >, int > = 0> |
| ElementType * | New () |
| |
| template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>, std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| ElementType * | New (size_t count) |
| |
| template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>, std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| ElementType * | New (size_t count, size_t alignment) |
| | Constructs an alignment-byte aligned array of count objects.
|
| |
| template<typename T , int &... kExplicitGuard, std::enable_if_t<!std::is_array_v< T >, int > = 0, typename... Args> |
| UniquePtr< T > | MakeUnique (Args &&... args) |
| |
| template<typename T , std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| UniquePtr< T > | MakeUnique (size_t size) |
| |
| template<typename T , std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| UniquePtr< T > | MakeUnique (size_t size, size_t alignment) |
| |
| template<typename T , std::enable_if_t< is_bounded_array_v< T >, int > = 0> |
| UniquePtr< T > | MakeUnique () |
| |
| template<typename T , int &... kExplicitGuard, std::enable_if_t<!std::is_array_v< T >, int > = 0, typename... Args> |
| SharedPtr< T > | MakeShared (Args &&... args) |
| |
| template<typename T , std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| SharedPtr< T > | MakeShared (size_t size) |
| |
| template<typename T , std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| SharedPtr< T > | MakeShared (size_t size, size_t alignment) |
| |
| template<typename T , std::enable_if_t< is_bounded_array_v< T >, int > = 0> |
| SharedPtr< T > | MakeShared () |
| |
| bool | Resize (void *ptr, size_t new_size) |
| |
| void * | Reallocate (void *ptr, Layout new_layout) |
| |
| size_t | GetAllocated () const |
| |
|
std::optional< Fragmentation > | MeasureFragmentation () const |
| | Returns fragmentation information for the allocator's memory region.
|
| |
|
constexpr const Capabilities & | capabilities () const |
| |
|
constexpr bool | HasCapability (Capability capability) const |
| | Returns whether a given capability is enabled for this object.
|
| |
| void | Deallocate (void *ptr) |
| |
| template<typename ElementType > |
| void | DeleteArray (ElementType *ptr, size_t count) |
| |
| template<typename ElementType > |
| void | Destroy (ElementType *ptr, size_t count) |
| |
| StatusWithSize | GetCapacity () const |
| |
| bool | IsEqual (const Deallocator &other) const |
| |
| template<typename T , int &... kExplicitGuard, std::enable_if_t<!std::is_array_v< T >, int > = 0> |
| void | Delete (T *ptr) |
| |
|
template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>, std::enable_if_t< is_bounded_array_v< T >, int > = 0> |
| void | Delete (ElementType *ptr) |
| |
|
template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>, std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| void | Delete (ElementType *ptr, size_t count) |
| |
| enum class | InfoType {
kRequestedLayoutOf
, kUsableLayoutOf
, kAllocatedLayoutOf
, kCapacity
,
kRecognizes
} |
| |
|
template<typename T > |
| static constexpr bool | is_bounded_array_v = ::pw::is_bounded_array_v<T> |
| |
|
template<typename T > |
| static constexpr bool | is_unbounded_array_v = ::pw::is_unbounded_array_v<T> |
| |